Calculate some info per sample

#calculate the Shannon-Wiener diversity (with diversity function from vegan package) for all species
df.sample_data$diversity <- apply(df.sample_data[df.species_all$colname], MARGIN=1, diversity)
#calculate the Shannon-Wiener diversity (with diversity function from vegan package) for nursery species
df.sample_data$nursery_diversity <- apply(df.sample_data[nursery_species$colname], MARGIN=1, diversity)

#calculate number of species for all species by summing the presence/absence columns for those species
df.sample_data$num_species <- apply(df.sample_data[c(df.species_all$colname_pres)],MARGIN=1,sum)
#calculate number of species for nursery species by summing the presence/absence columns for those species
df.sample_data$num_nursery_species <- apply(df.sample_data[c(nursery_species$colname_pres)],MARGIN=1,sum)

#calculate number of fish
df.sample_data$num_fish <- apply(df.sample_data[c(df.species_all$colname)],MARGIN=1,sum)
#calculate number of nursery fish
df.sample_data$num_nursery_fish <- apply(df.sample_data[c(nursery_species$colname)],MARGIN=1,sum)

df.sample_data <- merge(x=df.sample_data, y=df.sites, by.x="location", by.y="name", all.x=TRUE)

Nursery species

nursery_columns <- c(c("location","depth","transect","date","nursery_diversity","num_nursery_species","num_nursery_fish"),nursery_species$colname, nursery_species$colname_pres) #columns for nursery species analysis
df.nursery_sample_data <- df.sample_data[nursery_columns] # subset of the data with only the nursery species

GLM family=Poisson on abundance_pres

Independent variables: size_seagrass, distance_seagrass, size_mangroves, distance_mangroves, mpa, depth, north

glm_tab <- data.frame(species=c(), coefficient=c(), pvalue=c())

speciesrows <- c(1:3,25:28,36,39,40,42,47,52:54,58,66,84:86,88,91:100,102:104)
for (spnum in speciesrows){
  sp <- df.species_all[spnum,]
  print(sp$colname)
  n <- subset(df.sample_data, df.sample_data[c(sp$colname_pres)] > 0)
  if(nrow(n)<5){
    print("Less than 5 rows remaining in subset")
    next
  }
  if(length(unique(n$depth))==1 & length(unique(n$mpa))>1){
    formula <- n[,c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$north
  }
  else if (length(unique(n$depth))>1 & length(unique(n$mpa))==1){
    formula <- n[,c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$depth * n$north  
  }
  else if (length(unique(n$depth))==1 & length(unique(n$mpa))==1){
    formula <- n[,c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$north  
  }
  else{
    formula <- n[,c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north  
  }
  print(paste("Formula",sp$colname,":",as.character(formula)))
  res <- NULL
  tryCatch(
  res <- glm(formula, family="poisson"),
    error=function(e){ print("GLM kon niet uitgevoerd worden.");print(geterrmessage())}
  )
  if(is.null(res)){
    next
  }
  
  coefs <- as.data.frame(coef(summary(res)))
  coefs <- subset(coefs,coefs$`Pr(>|z|)`<=0.05)
  coefs <- data.frame(species=rep(sp$colname,nrow(coefs)),coefficient=rownames(coefs),pvalue=coefs$`Pr(>|z|)`)
  coefs <- subset(coefs, coefs$coefficient != '(Intercept)')
  
  if(nrow(coefs)==0){
    next
  }
  glm_tab <- rbind(glm_tab, coefs)
  print(paste("AIC",sp$colname,": ",summary(res)$aic))
  par(mfrow=c(1,2)) 
  plot(fitted(res),residuals(res),xlab="Fitted values", ylab="Residuals", abline(h=0, lty=2))
  title(sp$colname)
  tryCatch( 
    lines(smooth.spline(fitted(res), residuals(res))), 
    error=function(e){}  )
  qqnorm(res$residuals)
  qqline(res$residuals) 
}
## [1] "abudefduf_lorenzi"
## [1] "Less than 5 rows remaining in subset"
## [1] "abudefduf_sexfasciatus"
## [1] "Formula abudefduf_sexfasciatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_sexfasciatus :  126.58813996457"

## [1] "abudefduf_vaigiensis"
## [1] "Formula abudefduf_vaigiensis : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_vaigiensis :  761.404862459547"

## [1] "cheilinus_chlorourus"
## [1] "Formula cheilinus_chlorourus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "cheilinus_undulatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "cheilio_inermis"
## [1] "Formula cheilio_inermis : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC cheilio_inermis :  137.853053579635"

## [1] "cheilodipterus_quinquelineatus"
## [1] "Formula cheilodipterus_quinquelineatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC cheilodipterus_quinquelineatus :  1484.15649033751"
## [1] "fistularia_commersonii"
## [1] "Formula fistularia_commersonii : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "halichoeres_argus"
## [1] "Formula halichoeres_argus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "halichoeres_hortulanus"
## [1] "Formula halichoeres_hortulanus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## Warning: glm.fit: algorithm did not converge

## [1] "halichoeres_scapularis"
## [1] "Formula halichoeres_scapularis : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lethrinus_harak"
## [1] "Less than 5 rows remaining in subset"
## [1] "lutjanus_decussatus"
## [1] "Formula lutjanus_decussatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_gibbus"
## [1] "Formula lutjanus_gibbus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_monostigma"
## [1] "Formula lutjanus_monostigma : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "mulloidichthys_flavolineatus"
## [1] "Formula mulloidichthys_flavolineatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC mulloidichthys_flavolineatus :  98.1906269028389"

## [1] "parupeneus_barberinus"
## [1] "Formula parupeneus_barberinus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_guttatus"
## [1] "Formula siganus_guttatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_virgatus"
## [1] "Formula siganus_virgatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "sphyraena_barracuda"
## [1] "Less than 5 rows remaining in subset"
## [1] "stethojulis_trilineata"
## [1] "Formula stethojulis_trilineata : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "plectorhinchus_flavomaculatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "plectorhinchus_lineatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_microdon"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_obsoletus"
## [1] "Formula lethrinus_obsoletus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$north"
## [1] "lutjanus_ehrenbergii"
## [1] "Formula lutjanus_ehrenbergii : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_fulviflamma"
## [1] "Formula lutjanus_fulviflamma : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$north"
## [1] "lutjanus_fulvus"
## [1] "Formula lutjanus_fulvus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "parupeneus_barberinoides"
## [1] "Formula parupeneus_barberinoides : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinoides :  166.731713851202"
## [1] "scolopsis_bilineata"
## [1] "Formula scolopsis_bilineata : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## Warning: glm.fit: algorithm did not converge

## [1] "scolopsis_ciliata"
## [1] "Formula scolopsis_ciliata : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_ciliata :  456.994991112409"

## [1] "scarus_psittacus"
## [1] "Formula scarus_psittacus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "epinephelus_merra"
## [1] "Formula epinephelus_merra : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_spinus"
## [1] "Formula siganus_spinus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$depth * n$north"
knitr::kable(glm_tab, escape=TRUE)
species coefficient pvalue
1 abudefduf_sexfasciatus n$distance_seagrass 0.0475774
2 abudefduf_sexfasciatus n$size_mangroves 0.0485260
21 abudefduf_vaigiensis n$distance_seagrass 0.0007579
3 abudefduf_vaigiensis n$size_seagrass 0.0024052
4 abudefduf_vaigiensis n$size_mangroves 0.0007376
5 abudefduf_vaigiensis n$distance_mangroves 0.0012850
6 abudefduf_vaigiensis n$mpanon-mpa 0.0011287
7 abudefduf_vaigiensis n$northsouth 0.0008274
8 abudefduf_vaigiensis n\(distance_seagrass:n\)size_seagrass 0.0011290
9 abudefduf_vaigiensis n\(distance_seagrass:n\)depth10m 0.0000186
10 abudefduf_vaigiensis n\(size_seagrass:n\)depth10m 0.0016766
12 cheilio_inermis n$depth10m 0.0057399
22 cheilodipterus_quinquelineatus n$distance_seagrass 0.0002778
31 cheilodipterus_quinquelineatus n$size_seagrass 0.0000000
41 cheilodipterus_quinquelineatus n$size_mangroves 0.0003234
51 cheilodipterus_quinquelineatus n$distance_mangroves 0.0000383
61 cheilodipterus_quinquelineatus n$mpanon-mpa 0.0020950
71 cheilodipterus_quinquelineatus n$northsouth 0.0000726
81 cheilodipterus_quinquelineatus n\(size_seagrass:n\)depth10m 0.0000000
91 cheilodipterus_quinquelineatus n\(distance_seagrass:n\)size_seagrass:n$depth10m 0.0009730
211 mulloidichthys_flavolineatus n$distance_mangroves 0.0001437
221 mulloidichthys_flavolineatus n$mpanon-mpa 0.0021100
23 parupeneus_barberinoides n$distance_seagrass 0.0002228
24 scolopsis_ciliata n$depth10m 0.0078945
25 scolopsis_ciliata n\(distance_seagrass:n\)depth10m 0.0001718

log(size_seagrass)

glm_tab <- data.frame(species=c(), coefficient=c(), pvalue=c())

speciesrows <- c(1:3,25:28,36,39,40,42,47,52:54,58,66,84:86,88,91:100,102:104)
for (spnum in speciesrows){
  sp <- df.species_all[spnum,]
  print(sp$colname)
  n <- subset(df.sample_data, df.sample_data[c(sp$colname_pres)] > 0)
  if(nrow(n)<5){
    print("Less than 5 rows remaining in subset")
    next
  }
  if(length(unique(n$depth))==1 & length(unique(n$mpa))>1){
    formula <- n[,c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$north
  }
  else if (length(unique(n$depth))>1 & length(unique(n$mpa))==1){
    formula <- n[,c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$depth * n$north  
  }
  else if (length(unique(n$depth))==1 & length(unique(n$mpa))==1){
    formula <- n[,c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$north  
  }
  else{
    formula <- n[,c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north  
  }
  print(paste("Formula",sp$colname,":",as.character(formula)))
  res <- NULL
  tryCatch(
  res <- glm(formula, family="poisson"),
    error=function(e){ print("GLM kon niet uitgevoerd worden.");print(geterrmessage())}
  )
  if(is.null(res)){
    next
  }
  
  coefs <- as.data.frame(coef(summary(res)))
  coefs <- subset(coefs,coefs$`Pr(>|z|)`<=0.05)
  coefs <- data.frame(species=rep(sp$colname,nrow(coefs)),coefficient=rownames(coefs),pvalue=coefs$`Pr(>|z|)`)
  coefs <- subset(coefs, coefs$coefficient != '(Intercept)')
  
  if(nrow(coefs)==0){
    next
  }
  glm_tab <- rbind(glm_tab, coefs)
  print(paste("AIC",sp$colname,": ",summary(res)$aic))
  par(mfrow=c(1,2)) 
  plot(fitted(res),residuals(res),xlab="Fitted values", ylab="Residuals", abline(h=0, lty=2))
  title(sp$colname)
  tryCatch( 
    lines(smooth.spline(fitted(res), residuals(res))), 
    error=function(e){}  )
  qqnorm(res$residuals)
  qqline(res$residuals) 
}
## [1] "abudefduf_lorenzi"
## [1] "Less than 5 rows remaining in subset"
## [1] "abudefduf_sexfasciatus"
## [1] "Formula abudefduf_sexfasciatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_sexfasciatus :  126.58813996457"

## [1] "abudefduf_vaigiensis"
## [1] "Formula abudefduf_vaigiensis : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_vaigiensis :  761.404862459547"

## [1] "cheilinus_chlorourus"
## [1] "Formula cheilinus_chlorourus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "cheilinus_undulatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "cheilio_inermis"
## [1] "Formula cheilio_inermis : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC cheilio_inermis :  137.853053579635"

## [1] "cheilodipterus_quinquelineatus"
## [1] "Formula cheilodipterus_quinquelineatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC cheilodipterus_quinquelineatus :  1484.15649033751"

## [1] "fistularia_commersonii"
## [1] "Formula fistularia_commersonii : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC fistularia_commersonii :  203.808555954373"

## [1] "halichoeres_argus"
## [1] "Formula halichoeres_argus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "halichoeres_hortulanus"
## [1] "Formula halichoeres_hortulanus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC halichoeres_hortulanus :  621.430719922767"

## [1] "halichoeres_scapularis"
## [1] "Formula halichoeres_scapularis : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lethrinus_harak"
## [1] "Less than 5 rows remaining in subset"
## [1] "lutjanus_decussatus"
## [1] "Formula lutjanus_decussatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_gibbus"
## [1] "Formula lutjanus_gibbus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_monostigma"
## [1] "Formula lutjanus_monostigma : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "mulloidichthys_flavolineatus"
## [1] "Formula mulloidichthys_flavolineatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC mulloidichthys_flavolineatus :  98.1906269028388"

## [1] "parupeneus_barberinus"
## [1] "Formula parupeneus_barberinus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_guttatus"
## [1] "Formula siganus_guttatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_virgatus"
## [1] "Formula siganus_virgatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "sphyraena_barracuda"
## [1] "Less than 5 rows remaining in subset"
## [1] "stethojulis_trilineata"
## [1] "Formula stethojulis_trilineata : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "plectorhinchus_flavomaculatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "plectorhinchus_lineatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_microdon"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_obsoletus"
## [1] "Formula lethrinus_obsoletus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$north"
## [1] "lutjanus_ehrenbergii"
## [1] "Formula lutjanus_ehrenbergii : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_fulviflamma"
## [1] "Formula lutjanus_fulviflamma : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$north"
## [1] "lutjanus_fulvus"
## [1] "Formula lutjanus_fulvus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "parupeneus_barberinoides"
## [1] "Formula parupeneus_barberinoides : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinoides :  166.731713851202"

## [1] "scolopsis_bilineata"
## [1] "Formula scolopsis_bilineata : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "scolopsis_ciliata"
## [1] "Formula scolopsis_ciliata : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_ciliata :  456.994991112409"

## [1] "scarus_psittacus"
## [1] "Formula scarus_psittacus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "epinephelus_merra"
## [1] "Formula epinephelus_merra : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_spinus"
## [1] "Formula siganus_spinus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$depth * n$north"
knitr::kable(glm_tab, escape=TRUE)
species coefficient pvalue
2 abudefduf_sexfasciatus n$size_mangroves 0.0232130
3 abudefduf_sexfasciatus n$distance_mangroves 0.0266834
4 abudefduf_sexfasciatus n$mpanon-mpa 0.0085069
5 abudefduf_sexfasciatus n$northsouth 0.0343237
21 abudefduf_vaigiensis n$distance_seagrass 0.0000299
31 abudefduf_vaigiensis n$size_mangroves 0.0010257
41 abudefduf_vaigiensis n$distance_mangroves 0.0019656
51 abudefduf_vaigiensis n$mpanon-mpa 0.0011233
6 abudefduf_vaigiensis n$depth10m 0.0002026
7 abudefduf_vaigiensis n$northsouth 0.0010132
8 abudefduf_vaigiensis n\(distance_seagrass:log(n\)size_seagrass) 0.0004283
9 abudefduf_vaigiensis n\(distance_seagrass:n\)depth10m 0.0000013
10 abudefduf_vaigiensis log(n\(size_seagrass):n\)depth10m 0.0016766
14 cheilio_inermis n$depth10m 0.0057399
22 cheilodipterus_quinquelineatus log(n$size_seagrass) 0.0000000
32 cheilodipterus_quinquelineatus n$size_mangroves 0.0000002
42 cheilodipterus_quinquelineatus n$distance_mangroves 0.0000000
52 cheilodipterus_quinquelineatus n$mpanon-mpa 0.0000020
61 cheilodipterus_quinquelineatus n$northsouth 0.0000002
71 cheilodipterus_quinquelineatus n\(distance_seagrass:log(n\)size_seagrass) 0.0076134
81 cheilodipterus_quinquelineatus n\(distance_seagrass:n\)depth10m 0.0067477
91 cheilodipterus_quinquelineatus log(n\(size_seagrass):n\)depth10m 0.0000000
101 cheilodipterus_quinquelineatus n\(distance_mangroves:n\)depth10m 0.0008222
11 cheilodipterus_quinquelineatus n\(distance_seagrass:log(n\)size_seagrass):n$depth10m 0.0000338
25 fistularia_commersonii log(n$size_seagrass) 0.0416231
26 fistularia_commersonii n$distance_mangroves 0.0152579
27 fistularia_commersonii n$mpanon-mpa 0.0109622
28 fistularia_commersonii n\(distance_seagrass:n\)size_mangroves 0.0378217
23 halichoeres_hortulanus n$distance_seagrass 0.0038113
33 halichoeres_hortulanus log(n$size_seagrass) 0.0138281
43 halichoeres_hortulanus n$size_mangroves 0.0099475
53 halichoeres_hortulanus n$distance_mangroves 0.0103440
62 halichoeres_hortulanus n$mpanon-mpa 0.0317664
72 halichoeres_hortulanus n$northsouth 0.0109432
82 halichoeres_hortulanus n\(distance_seagrass:n\)size_mangroves 0.0078294
36 mulloidichthys_flavolineatus n$distance_seagrass 0.0170298
37 mulloidichthys_flavolineatus n$distance_mangroves 0.0023050
38 mulloidichthys_flavolineatus n$mpanon-mpa 0.0002856
39 parupeneus_barberinoides n$distance_seagrass 0.0001312
40 scolopsis_ciliata n$depth10m 0.0207127
411 scolopsis_ciliata n\(distance_seagrass:n\)depth10m 0.0084546

log(distance_seagrass)

glm_tab <- data.frame(species=c(), coefficient=c(), pvalue=c())

speciesrows <- c(1:3,25:28,36,39,40,42,47,52:54,58,66,84:86,88,91:100,102:104)
for (spnum in speciesrows){
  sp <- df.species_all[spnum,]
  print(sp$colname)
  n <- subset(df.sample_data, df.sample_data[c(sp$colname_pres)] > 0)
  if(nrow(n)<5){
    print("Less than 5 rows remaining in subset")
    next
  }
  if(length(unique(n$depth))==1 & length(unique(n$mpa))>1){
    formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$north
  }
  else if (length(unique(n$depth))>1 & length(unique(n$mpa))==1){
    formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$depth * n$north  
  }
  else if (length(unique(n$depth))==1 & length(unique(n$mpa))==1){
    formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$north  
  }
  else{
    formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north  
  }
  print(paste("Formula",sp$colname,":",as.character(formula)))
  res <- NULL
  tryCatch(
  res <- glm(formula, family="poisson"),
    error=function(e){ print("GLM kon niet uitgevoerd worden.");print(geterrmessage())}
  )
  if(is.null(res)){
    next
  }
  
  coefs <- as.data.frame(coef(summary(res)))
  coefs <- subset(coefs,coefs$`Pr(>|z|)`<=0.05)
  coefs <- data.frame(species=rep(sp$colname,nrow(coefs)),coefficient=rownames(coefs),pvalue=coefs$`Pr(>|z|)`)
  coefs <- subset(coefs, coefs$coefficient != '(Intercept)')
  
  if(nrow(coefs)==0){
    next
  }
  glm_tab <- rbind(glm_tab, coefs)
  print(paste("AIC",sp$colname,": ",summary(res)$aic))
  par(mfrow=c(1,2)) 
  plot(fitted(res),residuals(res),xlab="Fitted values", ylab="Residuals", abline(h=0, lty=2))
  title(sp$colname)
  tryCatch( 
    lines(smooth.spline(fitted(res), residuals(res))), 
    error=function(e){}  )
  qqnorm(res$residuals)
  qqline(res$residuals) 
}
## [1] "abudefduf_lorenzi"
## [1] "Less than 5 rows remaining in subset"
## [1] "abudefduf_sexfasciatus"
## [1] "Formula abudefduf_sexfasciatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_sexfasciatus :  126.58813996457"

## [1] "abudefduf_vaigiensis"
## [1] "Formula abudefduf_vaigiensis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_vaigiensis :  761.404862459546"

## [1] "cheilinus_chlorourus"
## [1] "Formula cheilinus_chlorourus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "cheilinus_undulatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "cheilio_inermis"
## [1] "Formula cheilio_inermis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC cheilio_inermis :  137.853053579635"

## [1] "cheilodipterus_quinquelineatus"
## [1] "Formula cheilodipterus_quinquelineatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC cheilodipterus_quinquelineatus :  1484.15649033752"

## [1] "fistularia_commersonii"
## [1] "Formula fistularia_commersonii : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "halichoeres_argus"
## [1] "Formula halichoeres_argus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "halichoeres_hortulanus"
## [1] "Formula halichoeres_hortulanus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC halichoeres_hortulanus :  621.430719922767"

## [1] "halichoeres_scapularis"
## [1] "Formula halichoeres_scapularis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lethrinus_harak"
## [1] "Less than 5 rows remaining in subset"
## [1] "lutjanus_decussatus"
## [1] "Formula lutjanus_decussatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_gibbus"
## [1] "Formula lutjanus_gibbus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_monostigma"
## [1] "Formula lutjanus_monostigma : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "mulloidichthys_flavolineatus"
## [1] "Formula mulloidichthys_flavolineatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC mulloidichthys_flavolineatus :  98.1906269028388"

## [1] "parupeneus_barberinus"
## [1] "Formula parupeneus_barberinus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinus :  633.195660521307"

## [1] "siganus_guttatus"
## [1] "Formula siganus_guttatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_virgatus"
## [1] "Formula siganus_virgatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "sphyraena_barracuda"
## [1] "Less than 5 rows remaining in subset"
## [1] "stethojulis_trilineata"
## [1] "Formula stethojulis_trilineata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "plectorhinchus_flavomaculatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "plectorhinchus_lineatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_microdon"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_obsoletus"
## [1] "Formula lethrinus_obsoletus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$north"
## [1] "lutjanus_ehrenbergii"
## [1] "Formula lutjanus_ehrenbergii : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_fulviflamma"
## [1] "Formula lutjanus_fulviflamma : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$north"
## [1] "AIC lutjanus_fulviflamma :  37.6524153062094"

## [1] "lutjanus_fulvus"
## [1] "Formula lutjanus_fulvus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "parupeneus_barberinoides"
## [1] "Formula parupeneus_barberinoides : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinoides :  166.731713851202"

## [1] "scolopsis_bilineata"
## [1] "Formula scolopsis_bilineata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_bilineata :  843.933588478539"

## [1] "scolopsis_ciliata"
## [1] "Formula scolopsis_ciliata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_ciliata :  456.994991112409"

## [1] "scarus_psittacus"
## [1] "Formula scarus_psittacus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "epinephelus_merra"
## [1] "Formula epinephelus_merra : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_spinus"
## [1] "Formula siganus_spinus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * n$distance_mangroves * n$depth * n$north"
knitr::kable(glm_tab, escape=TRUE)
species coefficient pvalue
1 abudefduf_sexfasciatus n$size_seagrass 0.0411274
2 abudefduf_vaigiensis log(n$distance_seagrass) 0.0002140
3 abudefduf_vaigiensis n$size_seagrass 0.0014448
4 abudefduf_vaigiensis n$size_mangroves 0.0001557
5 abudefduf_vaigiensis n$distance_mangroves 0.0021998
6 abudefduf_vaigiensis n$mpanon-mpa 0.0013878
7 abudefduf_vaigiensis n$depth10m 0.0000014
8 abudefduf_vaigiensis n$northsouth 0.0023314
9 abudefduf_vaigiensis log(n\(distance_seagrass):n\)size_seagrass 0.0012287
10 abudefduf_vaigiensis log(n\(distance_seagrass):n\)depth10m 0.0000186
11 abudefduf_vaigiensis n\(size_seagrass:n\)depth10m 0.0016766
12 cheilio_inermis n$depth10m 0.0057399
13 cheilodipterus_quinquelineatus log(n$distance_seagrass) 0.0008500
14 cheilodipterus_quinquelineatus n$size_seagrass 0.0000151
15 cheilodipterus_quinquelineatus n$size_mangroves 0.0017885
16 cheilodipterus_quinquelineatus n$distance_mangroves 0.0003449
17 cheilodipterus_quinquelineatus n$northsouth 0.0030186
18 cheilodipterus_quinquelineatus log(n\(distance_seagrass):n\)size_seagrass 0.0042162
19 cheilodipterus_quinquelineatus n\(size_seagrass:n\)depth10m 0.0034369
20 cheilodipterus_quinquelineatus n\(size_mangroves:n\)depth10m 0.0137646
21 cheilodipterus_quinquelineatus log(n\(distance_seagrass):n\)size_seagrass:n$depth10m 0.0097216
22 halichoeres_hortulanus log(n$distance_seagrass) 0.0319946
31 halichoeres_hortulanus n$size_mangroves 0.0079199
41 halichoeres_hortulanus n$mpanon-mpa 0.0009165
51 halichoeres_hortulanus n$northsouth 0.0003591
61 halichoeres_hortulanus log(n\(distance_seagrass):n\)size_seagrass 0.0322807
71 halichoeres_hortulanus log(n\(distance_seagrass):n\)size_mangroves 0.0083371
28 mulloidichthys_flavolineatus log(n$distance_seagrass) 0.0245036
29 mulloidichthys_flavolineatus n$distance_mangroves 0.0074226
30 mulloidichthys_flavolineatus n$mpanon-mpa 0.0150556
23 parupeneus_barberinus log(n$distance_seagrass) 0.0206391
32 parupeneus_barberinus n$size_seagrass 0.0446283
42 parupeneus_barberinus n$distance_mangroves 0.0189358
52 parupeneus_barberinus n$northsouth 0.0471892
24 lutjanus_fulviflamma n$size_seagrass 0.0487377
36 parupeneus_barberinoides log(n$distance_seagrass) 0.0001737
37 scolopsis_bilineata n\(distance_mangroves:n\)depth10m 0.0291154
38 scolopsis_ciliata n$depth10m 0.0001206
39 scolopsis_ciliata log(n\(distance_seagrass):n\)depth10m 0.0001718

log(size_mangroves)

glm_tab <- data.frame(species=c(), coefficient=c(), pvalue=c())

speciesrows <- c(1:3,25:28,36,39,40,42,47,52:54,58,66,84:86,88,91:100,102:104)
for (spnum in speciesrows){
  sp <- df.species_all[spnum,]
  print(sp$colname)
  n <- subset(df.sample_data, df.sample_data[c(sp$colname_pres)] > 0)
  if(nrow(n)<5){
    print("Less than 5 rows remaining in subset")
    next
  }
  if(length(unique(n$depth))==1 & length(unique(n$mpa))>1){
    formula <- n[,c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$north
  }
  else if (length(unique(n$depth))>1 & length(unique(n$mpa))==1){
    formula <- n[,c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$depth * n$north  
  }
  else if (length(unique(n$depth))==1 & length(unique(n$mpa))==1){
    formula <- n[,c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$north  
  }
  else{
    formula <- n[,c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north  
  }
  print(paste("Formula",sp$colname,":",as.character(formula)))
  res <- NULL
  tryCatch(
  res <- glm(formula, family="poisson"),
    error=function(e){ print("GLM kon niet uitgevoerd worden.");print(geterrmessage())}
  )
  if(is.null(res)){
    next
  }
  
  coefs <- as.data.frame(coef(summary(res)))
  coefs <- subset(coefs,coefs$`Pr(>|z|)`<=0.05)
  coefs <- data.frame(species=rep(sp$colname,nrow(coefs)),coefficient=rownames(coefs),pvalue=coefs$`Pr(>|z|)`)
  coefs <- subset(coefs, coefs$coefficient != '(Intercept)')
  
  if(nrow(coefs)==0){
    next
  }
  glm_tab <- rbind(glm_tab, coefs)
  print(paste("AIC",sp$colname,": ",summary(res)$aic))
  par(mfrow=c(1,2)) 
  plot(fitted(res),residuals(res),xlab="Fitted values", ylab="Residuals", abline(h=0, lty=2))
  title(sp$colname)
  tryCatch( 
    lines(smooth.spline(fitted(res), residuals(res))), 
    error=function(e){}  )
  qqnorm(res$residuals)
  qqline(res$residuals) 
}
## [1] "abudefduf_lorenzi"
## [1] "Less than 5 rows remaining in subset"
## [1] "abudefduf_sexfasciatus"
## [1] "Formula abudefduf_sexfasciatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_sexfasciatus :  126.58813996457"

## [1] "abudefduf_vaigiensis"
## [1] "Formula abudefduf_vaigiensis : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_vaigiensis :  761.404862459547"

## [1] "cheilinus_chlorourus"
## [1] "Formula cheilinus_chlorourus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "cheilinus_undulatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "cheilio_inermis"
## [1] "Formula cheilio_inermis : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC cheilio_inermis :  137.853053579635"

## [1] "cheilodipterus_quinquelineatus"
## [1] "Formula cheilodipterus_quinquelineatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC cheilodipterus_quinquelineatus :  1484.15649033751"
## [1] "fistularia_commersonii"
## [1] "Formula fistularia_commersonii : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "halichoeres_argus"
## [1] "Formula halichoeres_argus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "halichoeres_hortulanus"
## [1] "Formula halichoeres_hortulanus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## Warning: glm.fit: algorithm did not converge

## [1] "AIC halichoeres_hortulanus :  623.511082015147"

## [1] "halichoeres_scapularis"
## [1] "Formula halichoeres_scapularis : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lethrinus_harak"
## [1] "Less than 5 rows remaining in subset"
## [1] "lutjanus_decussatus"
## [1] "Formula lutjanus_decussatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_gibbus"
## [1] "Formula lutjanus_gibbus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_monostigma"
## [1] "Formula lutjanus_monostigma : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "mulloidichthys_flavolineatus"
## [1] "Formula mulloidichthys_flavolineatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC mulloidichthys_flavolineatus :  98.1906269028388"

## [1] "parupeneus_barberinus"
## [1] "Formula parupeneus_barberinus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_guttatus"
## [1] "Formula siganus_guttatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_virgatus"
## [1] "Formula siganus_virgatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "sphyraena_barracuda"
## [1] "Less than 5 rows remaining in subset"
## [1] "stethojulis_trilineata"
## [1] "Formula stethojulis_trilineata : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "plectorhinchus_flavomaculatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "plectorhinchus_lineatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_microdon"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_obsoletus"
## [1] "Formula lethrinus_obsoletus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$north"
## [1] "lutjanus_ehrenbergii"
## [1] "Formula lutjanus_ehrenbergii : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_fulviflamma"
## [1] "Formula lutjanus_fulviflamma : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$north"
## [1] "lutjanus_fulvus"
## [1] "Formula lutjanus_fulvus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "parupeneus_barberinoides"
## [1] "Formula parupeneus_barberinoides : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinoides :  166.731713851202"
## [1] "scolopsis_bilineata"
## [1] "Formula scolopsis_bilineata : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## Warning: glm.fit: algorithm did not converge

## [1] "scolopsis_ciliata"
## [1] "Formula scolopsis_ciliata : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_ciliata :  456.994991112409"

## [1] "scarus_psittacus"
## [1] "Formula scarus_psittacus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "epinephelus_merra"
## [1] "Formula epinephelus_merra : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_spinus"
## [1] "Formula siganus_spinus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$depth * n$north"
knitr::kable(glm_tab, escape=TRUE)
species coefficient pvalue
2 abudefduf_sexfasciatus n$distance_seagrass 0.0475204
3 abudefduf_sexfasciatus log(n$size_mangroves) 0.0485260
21 abudefduf_vaigiensis n$distance_seagrass 0.0007519
31 abudefduf_vaigiensis log(n$size_mangroves) 0.0007376
4 abudefduf_vaigiensis n$distance_mangroves 0.0010258
5 abudefduf_vaigiensis n$mpanon-mpa 0.0009591
6 abudefduf_vaigiensis n$northsouth 0.0007727
7 abudefduf_vaigiensis n\(distance_seagrass:n\)size_seagrass 0.0009839
8 abudefduf_vaigiensis n\(distance_seagrass:n\)depth10m 0.0000186
9 abudefduf_vaigiensis n\(size_seagrass:n\)depth10m 0.0016766
11 cheilio_inermis n$depth10m 0.0057399
22 cheilodipterus_quinquelineatus n$distance_seagrass 0.0002754
32 cheilodipterus_quinquelineatus n$size_seagrass 0.0152336
41 cheilodipterus_quinquelineatus log(n$size_mangroves) 0.0003234
51 cheilodipterus_quinquelineatus n$distance_mangroves 0.0000564
61 cheilodipterus_quinquelineatus n$mpanon-mpa 0.0027557
71 cheilodipterus_quinquelineatus n$northsouth 0.0001337
81 cheilodipterus_quinquelineatus n\(distance_seagrass:n\)size_seagrass 0.0468577
91 cheilodipterus_quinquelineatus n\(size_seagrass:n\)depth10m 0.0000000
10 cheilodipterus_quinquelineatus n\(distance_seagrass:n\)size_seagrass:n$depth10m 0.0015202
23 halichoeres_hortulanus n$distance_seagrass 0.0015355
33 halichoeres_hortulanus n$size_seagrass 0.0020170
42 halichoeres_hortulanus log(n$size_mangroves) 0.0016483
52 halichoeres_hortulanus n$distance_mangroves 0.0020266
62 halichoeres_hortulanus n$mpanon-mpa 0.0022771
72 halichoeres_hortulanus n$northsouth 0.0017666
82 halichoeres_hortulanus n\(distance_seagrass:n\)size_seagrass 0.0016340
92 halichoeres_hortulanus n\(distance_seagrass:log(n\)size_mangroves) 0.0015467
29 mulloidichthys_flavolineatus n$distance_mangroves 0.0001436
30 mulloidichthys_flavolineatus n$mpanon-mpa 0.0025719
311 parupeneus_barberinoides n$distance_seagrass 0.0010270
321 scolopsis_ciliata n$depth10m 0.0078945
331 scolopsis_ciliata n\(distance_seagrass:n\)depth10m 0.0001718

log(distance_mangroves)

glm_tab <- data.frame(species=c(), coefficient=c(), pvalue=c())

speciesrows <- c(1:3,25:28,36,39,40,42,47,52:54,58,66,84:86,88,91:100,102:104)
for (spnum in speciesrows){
  sp <- df.species_all[spnum,]
  print(sp$colname)
  n <- subset(df.sample_data, df.sample_data[c(sp$colname_pres)] > 0)
  if(nrow(n)<5){
    print("Less than 5 rows remaining in subset")
    next
  }
  if(length(unique(n$depth))==1 & length(unique(n$mpa))>1){
    formula <- n[,c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$north
  }
  else if (length(unique(n$depth))>1 & length(unique(n$mpa))==1){
    formula <- n[,c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$depth * n$north  
  }
  else if (length(unique(n$depth))==1 & length(unique(n$mpa))==1){
    formula <- n[,c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$north  
  }
  else{
    formula <- n[,c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north  
  }
  print(paste("Formula",sp$colname,":",as.character(formula)))
  res <- NULL
  tryCatch(
  res <- glm(formula, family="poisson"),
    error=function(e){ print("GLM kon niet uitgevoerd worden.");print(geterrmessage())}
  )
  if(is.null(res)){
    next
  }
  
  coefs <- as.data.frame(coef(summary(res)))
  coefs <- subset(coefs,coefs$`Pr(>|z|)`<=0.05)
  coefs <- data.frame(species=rep(sp$colname,nrow(coefs)),coefficient=rownames(coefs),pvalue=coefs$`Pr(>|z|)`)
  coefs <- subset(coefs, coefs$coefficient != '(Intercept)')
  
  if(nrow(coefs)==0){
    next
  }
  glm_tab <- rbind(glm_tab, coefs)
  print(paste("AIC",sp$colname,": ",summary(res)$aic))
  par(mfrow=c(1,2)) 
  plot(fitted(res),residuals(res),xlab="Fitted values", ylab="Residuals", abline(h=0, lty=2))
  title(sp$colname)
  tryCatch( 
    lines(smooth.spline(fitted(res), residuals(res))), 
    error=function(e){}  )
  qqnorm(res$residuals)
  qqline(res$residuals) 
}
## [1] "abudefduf_lorenzi"
## [1] "Less than 5 rows remaining in subset"
## [1] "abudefduf_sexfasciatus"
## [1] "Formula abudefduf_sexfasciatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_sexfasciatus :  126.58813996457"

## [1] "abudefduf_vaigiensis"
## [1] "Formula abudefduf_vaigiensis : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_vaigiensis :  761.404862459546"

## [1] "cheilinus_chlorourus"
## [1] "Formula cheilinus_chlorourus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "cheilinus_undulatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "cheilio_inermis"
## [1] "Formula cheilio_inermis : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC cheilio_inermis :  137.853053579635"

## [1] "cheilodipterus_quinquelineatus"
## [1] "Formula cheilodipterus_quinquelineatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC cheilodipterus_quinquelineatus :  1484.15649033751"

## [1] "fistularia_commersonii"
## [1] "Formula fistularia_commersonii : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "halichoeres_argus"
## [1] "Formula halichoeres_argus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "halichoeres_hortulanus"
## [1] "Formula halichoeres_hortulanus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC halichoeres_hortulanus :  621.430719922767"

## [1] "halichoeres_scapularis"
## [1] "Formula halichoeres_scapularis : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "lethrinus_harak"
## [1] "Less than 5 rows remaining in subset"
## [1] "lutjanus_decussatus"
## [1] "Formula lutjanus_decussatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_gibbus"
## [1] "Formula lutjanus_gibbus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC lutjanus_gibbus :  54.9453245875361"

## [1] "lutjanus_monostigma"
## [1] "Formula lutjanus_monostigma : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "mulloidichthys_flavolineatus"
## [1] "Formula mulloidichthys_flavolineatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC mulloidichthys_flavolineatus :  98.1906269028388"

## [1] "parupeneus_barberinus"
## [1] "Formula parupeneus_barberinus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinus :  633.195660521307"

## [1] "siganus_guttatus"
## [1] "Formula siganus_guttatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_virgatus"
## [1] "Formula siganus_virgatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "sphyraena_barracuda"
## [1] "Less than 5 rows remaining in subset"
## [1] "stethojulis_trilineata"
## [1] "Formula stethojulis_trilineata : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "plectorhinchus_flavomaculatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "plectorhinchus_lineatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_microdon"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_obsoletus"
## [1] "Formula lethrinus_obsoletus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$north"
## [1] "lutjanus_ehrenbergii"
## [1] "Formula lutjanus_ehrenbergii : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_fulviflamma"
## [1] "Formula lutjanus_fulviflamma : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$north"
## [1] "lutjanus_fulvus"
## [1] "Formula lutjanus_fulvus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "parupeneus_barberinoides"
## [1] "Formula parupeneus_barberinoides : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "scolopsis_bilineata"
## [1] "Formula scolopsis_bilineata : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_bilineata :  843.933588478539"

## [1] "scolopsis_ciliata"
## [1] "Formula scolopsis_ciliata : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_ciliata :  456.994991112409"

## [1] "scarus_psittacus"
## [1] "Formula scarus_psittacus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "epinephelus_merra"
## [1] "Formula epinephelus_merra : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_spinus"
## [1] "Formula siganus_spinus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$distance_mangroves) * n$size_mangroves * n$depth * n$north"
knitr::kable(glm_tab, escape=TRUE)
species coefficient pvalue
abudefduf_sexfasciatus n\(distance_seagrass:n\)size_seagrass 0.0072912
abudefduf_vaigiensis n$distance_seagrass 0.0004432
abudefduf_vaigiensis n$size_seagrass 0.0010183
abudefduf_vaigiensis log(n$distance_mangroves) 0.0012850
abudefduf_vaigiensis n$size_mangroves 0.0004442
abudefduf_vaigiensis n$mpanon-mpa 0.0010418
abudefduf_vaigiensis n$northsouth 0.0006305
abudefduf_vaigiensis n\(distance_seagrass:n\)size_seagrass 0.0008741
abudefduf_vaigiensis n\(distance_seagrass:n\)depth10m 0.0000186
abudefduf_vaigiensis n\(size_seagrass:n\)depth10m 0.0016766
cheilio_inermis n$depth10m 0.0057399
cheilodipterus_quinquelineatus n$distance_seagrass 0.0000560
cheilodipterus_quinquelineatus n$size_seagrass 0.0000000
cheilodipterus_quinquelineatus log(n$distance_mangroves) 0.0000383
cheilodipterus_quinquelineatus n$size_mangroves 0.0000797
cheilodipterus_quinquelineatus n$mpanon-mpa 0.0044880
cheilodipterus_quinquelineatus n$depth10m 0.0471287
cheilodipterus_quinquelineatus n$northsouth 0.0000206
cheilodipterus_quinquelineatus n\(distance_seagrass:n\)size_seagrass 0.0000000
cheilodipterus_quinquelineatus n\(mpanon-mpa:n\)depth10m 0.0254092
cheilodipterus_quinquelineatus n\(distance_seagrass:n\)size_seagrass:n$depth10m 0.0006448
halichoeres_hortulanus n$distance_seagrass 0.0033563
halichoeres_hortulanus log(n$distance_mangroves) 0.0188338
halichoeres_hortulanus n$mpanon-mpa 0.0015347
halichoeres_hortulanus n\(distance_seagrass:log(n\)distance_mangroves) 0.0030464
lutjanus_gibbus n$size_seagrass 0.0001858
mulloidichthys_flavolineatus n$distance_seagrass 0.0001114
mulloidichthys_flavolineatus n$size_seagrass 0.0003739
mulloidichthys_flavolineatus log(n$distance_mangroves) 0.0001437
mulloidichthys_flavolineatus n$mpanon-mpa 0.0002624
parupeneus_barberinus n$size_seagrass 0.0289434
parupeneus_barberinus n$size_mangroves 0.0311172
parupeneus_barberinus n$northsouth 0.0474017
parupeneus_barberinus n\(distance_seagrass:n\)size_seagrass 0.0165494
scolopsis_bilineata n\(size_seagrass:n\)depth10m 0.0134165
scolopsis_ciliata n$depth10m 0.0078945
scolopsis_ciliata n\(distance_seagrass:n\)depth10m 0.0001718

log(size_seagrass) & log(distance_seagrass)

glm_tab <- data.frame(species=c(), coefficient=c(), pvalue=c())

speciesrows <- c(1:3,25:28,36,39,40,42,47,52:54,58,66,84:86,88,91:100,102:104)
for (spnum in speciesrows){
  sp <- df.species_all[spnum,]
  print(sp$colname)
  n <- subset(df.sample_data, df.sample_data[c(sp$colname_pres)] > 0)
  if(nrow(n)<5){
    print("Less than 5 rows remaining in subset")
    next
  }
  if(length(unique(n$depth))==1 & length(unique(n$mpa))>1){
    formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$north
  }
  else if (length(unique(n$depth))>1 & length(unique(n$mpa))==1){
    formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$depth * n$north  
  }
  else if (length(unique(n$depth))==1 & length(unique(n$mpa))==1){
    formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$north  
  }
  else{
    formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north  
  }
  print(paste("Formula",sp$colname,":",as.character(formula)))
  res <- NULL
  tryCatch(
  res <- glm(formula, family="poisson"),
    error=function(e){ print("GLM kon niet uitgevoerd worden.");print(geterrmessage())}
  )
  if(is.null(res)){
    next
  }
  
  coefs <- as.data.frame(coef(summary(res)))
  coefs <- subset(coefs,coefs$`Pr(>|z|)`<=0.05)
  coefs <- data.frame(species=rep(sp$colname,nrow(coefs)),coefficient=rownames(coefs),pvalue=coefs$`Pr(>|z|)`)
  coefs <- subset(coefs, coefs$coefficient != '(Intercept)')
  
  if(nrow(coefs)==0){
    next
  }
  glm_tab <- rbind(glm_tab, coefs)
  print(paste("AIC",sp$colname,": ",summary(res)$aic))
  par(mfrow=c(1,2)) 
  plot(fitted(res),residuals(res),xlab="Fitted values", ylab="Residuals", abline(h=0, lty=2))
  title(sp$colname)
  tryCatch( 
    lines(smooth.spline(fitted(res), residuals(res))), 
    error=function(e){}  )
  qqnorm(res$residuals)
  qqline(res$residuals) 
}
## [1] "abudefduf_lorenzi"
## [1] "Less than 5 rows remaining in subset"
## [1] "abudefduf_sexfasciatus"
## [1] "Formula abudefduf_sexfasciatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_sexfasciatus :  126.58813996457"

## [1] "abudefduf_vaigiensis"
## [1] "Formula abudefduf_vaigiensis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_vaigiensis :  761.404862459547"

## [1] "cheilinus_chlorourus"
## [1] "Formula cheilinus_chlorourus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "cheilinus_undulatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "cheilio_inermis"
## [1] "Formula cheilio_inermis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC cheilio_inermis :  137.853053579635"

## [1] "cheilodipterus_quinquelineatus"
## [1] "Formula cheilodipterus_quinquelineatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC cheilodipterus_quinquelineatus :  1484.15649033751"

## [1] "fistularia_commersonii"
## [1] "Formula fistularia_commersonii : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "halichoeres_argus"
## [1] "Formula halichoeres_argus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "halichoeres_hortulanus"
## [1] "Formula halichoeres_hortulanus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC halichoeres_hortulanus :  621.430719922767"

## [1] "halichoeres_scapularis"
## [1] "Formula halichoeres_scapularis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lethrinus_harak"
## [1] "Less than 5 rows remaining in subset"
## [1] "lutjanus_decussatus"
## [1] "Formula lutjanus_decussatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_gibbus"
## [1] "Formula lutjanus_gibbus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_monostigma"
## [1] "Formula lutjanus_monostigma : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "mulloidichthys_flavolineatus"
## [1] "Formula mulloidichthys_flavolineatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC mulloidichthys_flavolineatus :  98.1906269028389"

## [1] "parupeneus_barberinus"
## [1] "Formula parupeneus_barberinus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinus :  633.195660521307"

## [1] "siganus_guttatus"
## [1] "Formula siganus_guttatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_virgatus"
## [1] "Formula siganus_virgatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "sphyraena_barracuda"
## [1] "Less than 5 rows remaining in subset"
## [1] "stethojulis_trilineata"
## [1] "Formula stethojulis_trilineata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "plectorhinchus_flavomaculatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "plectorhinchus_lineatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_microdon"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_obsoletus"
## [1] "Formula lethrinus_obsoletus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$north"
## [1] "lutjanus_ehrenbergii"
## [1] "Formula lutjanus_ehrenbergii : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_fulviflamma"
## [1] "Formula lutjanus_fulviflamma : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$north"
## [1] "AIC lutjanus_fulviflamma :  37.6524153062094"

## [1] "lutjanus_fulvus"
## [1] "Formula lutjanus_fulvus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "parupeneus_barberinoides"
## [1] "Formula parupeneus_barberinoides : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinoides :  166.731713851202"

## [1] "scolopsis_bilineata"
## [1] "Formula scolopsis_bilineata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "scolopsis_ciliata"
## [1] "Formula scolopsis_ciliata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_ciliata :  456.994991112409"

## [1] "scarus_psittacus"
## [1] "Formula scarus_psittacus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "epinephelus_merra"
## [1] "Formula epinephelus_merra : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_spinus"
## [1] "Formula siganus_spinus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * n$size_mangroves * n$distance_mangroves * n$depth * n$north"
knitr::kable(glm_tab, escape=TRUE)
species coefficient pvalue
2 abudefduf_sexfasciatus log(n$size_seagrass) 0.0314838
3 abudefduf_sexfasciatus n$size_mangroves 0.0221253
4 abudefduf_sexfasciatus n$distance_mangroves 0.0360156
5 abudefduf_sexfasciatus n$mpanon-mpa 0.0293558
6 abudefduf_sexfasciatus log(n\(distance_seagrass):log(n\)size_seagrass) 0.0342116
21 abudefduf_vaigiensis log(n$distance_seagrass) 0.0039717
31 abudefduf_vaigiensis log(n$size_seagrass) 0.0014468
41 abudefduf_vaigiensis n$size_mangroves 0.0009734
51 abudefduf_vaigiensis n$distance_mangroves 0.0010066
61 abudefduf_vaigiensis n$mpanon-mpa 0.0010933
7 abudefduf_vaigiensis n$depth10m 0.0000008
8 abudefduf_vaigiensis n$northsouth 0.0010383
9 abudefduf_vaigiensis log(n\(distance_seagrass):log(n\)size_seagrass) 0.0011791
10 abudefduf_vaigiensis log(n\(distance_seagrass):n\)depth10m 0.0000013
11 abudefduf_vaigiensis log(n\(size_seagrass):n\)depth10m 0.0016766
16 cheilio_inermis n$depth10m 0.0057399
17 cheilodipterus_quinquelineatus log(n$distance_seagrass) 0.0218050
18 cheilodipterus_quinquelineatus log(n$size_seagrass) 0.0000000
19 cheilodipterus_quinquelineatus n$size_mangroves 0.0000013
20 cheilodipterus_quinquelineatus n$distance_mangroves 0.0000000
211 cheilodipterus_quinquelineatus n$mpanon-mpa 0.0000136
22 cheilodipterus_quinquelineatus log(n\(distance_seagrass):log(n\)size_seagrass) 0.0000017
23 cheilodipterus_quinquelineatus log(n\(distance_seagrass):n\)depth10m 0.0134930
24 cheilodipterus_quinquelineatus log(n\(size_seagrass):n\)depth10m 0.0036135
25 cheilodipterus_quinquelineatus log(n\(distance_seagrass):log(n\)size_seagrass):n$depth10m 0.0028510
26 halichoeres_hortulanus log(n$distance_seagrass) 0.0082914
32 halichoeres_hortulanus log(n$size_seagrass) 0.0378139
42 halichoeres_hortulanus n$size_mangroves 0.0042414
52 halichoeres_hortulanus n$distance_mangroves 0.0161226
62 halichoeres_hortulanus n$mpanon-mpa 0.0015648
71 halichoeres_hortulanus n$northsouth 0.0021504
81 halichoeres_hortulanus log(n\(distance_seagrass):n\)size_mangroves 0.0044979
27 mulloidichthys_flavolineatus log(n$distance_seagrass) 0.0170723
33 mulloidichthys_flavolineatus n$size_mangroves 0.0051032
43 mulloidichthys_flavolineatus n$distance_mangroves 0.0146713
53 mulloidichthys_flavolineatus n$mpanon-mpa 0.0134271
63 mulloidichthys_flavolineatus n$northsouth 0.0049402
38 parupeneus_barberinus log(n$size_seagrass) 0.0269771
39 parupeneus_barberinus n$distance_mangroves 0.0481660
40 parupeneus_barberinus log(n\(distance_seagrass):log(n\)size_seagrass) 0.0130958
411 lutjanus_fulviflamma log(n$size_seagrass) 0.0487377
421 parupeneus_barberinoides log(n$distance_seagrass) 0.0001365
431 scolopsis_ciliata n$depth10m 0.0005535
44 scolopsis_ciliata log(n\(distance_seagrass):n\)depth10m 0.0084546

log(size_seagrass) & log(size_mangroves)

glm_tab <- data.frame(species=c(), coefficient=c(), pvalue=c())

speciesrows <- c(1:3,25:28,36,39,40,42,47,52:54,58,66,84:86,88,91:100,102:104)
for (spnum in speciesrows){
  sp <- df.species_all[spnum,]
  print(sp$colname)
  n <- subset(df.sample_data, df.sample_data[c(sp$colname_pres)] > 0)
  if(nrow(n)<5){
    print("Less than 5 rows remaining in subset")
    next
  }
  if(length(unique(n$depth))==1 & length(unique(n$mpa))>1){
    formula <- n[,c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$north
  }
  else if (length(unique(n$depth))>1 & length(unique(n$mpa))==1){
    formula <- n[,c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$depth * n$north  
  }
  else if (length(unique(n$depth))==1 & length(unique(n$mpa))==1){
    formula <- n[,c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$north  
  }
  else{
    formula <- n[,c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north  
  }
  print(paste("Formula",sp$colname,":",as.character(formula)))
  res <- NULL
  tryCatch(
  res <- glm(formula, family="poisson"),
    error=function(e){ print("GLM kon niet uitgevoerd worden.");print(geterrmessage())}
  )
  if(is.null(res)){
    next
  }
  
  coefs <- as.data.frame(coef(summary(res)))
  coefs <- subset(coefs,coefs$`Pr(>|z|)`<=0.05)
  coefs <- data.frame(species=rep(sp$colname,nrow(coefs)),coefficient=rownames(coefs),pvalue=coefs$`Pr(>|z|)`)
  coefs <- subset(coefs, coefs$coefficient != '(Intercept)')
  
  if(nrow(coefs)==0){
    next
  }
  glm_tab <- rbind(glm_tab, coefs)
  print(paste("AIC",sp$colname,": ",summary(res)$aic))
  par(mfrow=c(1,2)) 
  plot(fitted(res),residuals(res),xlab="Fitted values", ylab="Residuals", abline(h=0, lty=2))
  title(sp$colname)
  tryCatch( 
    lines(smooth.spline(fitted(res), residuals(res))), 
    error=function(e){}  )
  qqnorm(res$residuals)
  qqline(res$residuals) 
}
## [1] "abudefduf_lorenzi"
## [1] "Less than 5 rows remaining in subset"
## [1] "abudefduf_sexfasciatus"
## [1] "Formula abudefduf_sexfasciatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_sexfasciatus :  126.58813996457"

## [1] "abudefduf_vaigiensis"
## [1] "Formula abudefduf_vaigiensis : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_vaigiensis :  761.404862459547"

## [1] "cheilinus_chlorourus"
## [1] "Formula cheilinus_chlorourus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "cheilinus_undulatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "cheilio_inermis"
## [1] "Formula cheilio_inermis : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC cheilio_inermis :  137.853053579635"

## [1] "cheilodipterus_quinquelineatus"
## [1] "Formula cheilodipterus_quinquelineatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC cheilodipterus_quinquelineatus :  1484.15649033751"

## [1] "fistularia_commersonii"
## [1] "Formula fistularia_commersonii : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC fistularia_commersonii :  203.808555954373"

## [1] "halichoeres_argus"
## [1] "Formula halichoeres_argus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "halichoeres_hortulanus"
## [1] "Formula halichoeres_hortulanus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC halichoeres_hortulanus :  621.430719922767"

## [1] "halichoeres_scapularis"
## [1] "Formula halichoeres_scapularis : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lethrinus_harak"
## [1] "Less than 5 rows remaining in subset"
## [1] "lutjanus_decussatus"
## [1] "Formula lutjanus_decussatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_gibbus"
## [1] "Formula lutjanus_gibbus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_monostigma"
## [1] "Formula lutjanus_monostigma : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "mulloidichthys_flavolineatus"
## [1] "Formula mulloidichthys_flavolineatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC mulloidichthys_flavolineatus :  98.1906269028388"

## [1] "parupeneus_barberinus"
## [1] "Formula parupeneus_barberinus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_guttatus"
## [1] "Formula siganus_guttatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_virgatus"
## [1] "Formula siganus_virgatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "sphyraena_barracuda"
## [1] "Less than 5 rows remaining in subset"
## [1] "stethojulis_trilineata"
## [1] "Formula stethojulis_trilineata : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "plectorhinchus_flavomaculatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "plectorhinchus_lineatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_microdon"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_obsoletus"
## [1] "Formula lethrinus_obsoletus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$north"
## [1] "lutjanus_ehrenbergii"
## [1] "Formula lutjanus_ehrenbergii : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_fulviflamma"
## [1] "Formula lutjanus_fulviflamma : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$north"
## [1] "lutjanus_fulvus"
## [1] "Formula lutjanus_fulvus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "parupeneus_barberinoides"
## [1] "Formula parupeneus_barberinoides : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinoides :  166.731713851202"

## [1] "scolopsis_bilineata"
## [1] "Formula scolopsis_bilineata : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "scolopsis_ciliata"
## [1] "Formula scolopsis_ciliata : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_ciliata :  456.994991112409"

## [1] "scarus_psittacus"
## [1] "Formula scarus_psittacus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "epinephelus_merra"
## [1] "Formula epinephelus_merra : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_spinus"
## [1] "Formula siganus_spinus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * n$distance_mangroves * n$depth * n$north"
knitr::kable(glm_tab, escape=TRUE)
species coefficient pvalue
2 abudefduf_sexfasciatus log(n$size_mangroves) 0.0232130
3 abudefduf_sexfasciatus n$mpanon-mpa 0.0082701
4 abudefduf_sexfasciatus n$northsouth 0.0306714
21 abudefduf_vaigiensis n$distance_seagrass 0.0000256
31 abudefduf_vaigiensis log(n$size_seagrass) 0.0363995
41 abudefduf_vaigiensis log(n$size_mangroves) 0.0010257
5 abudefduf_vaigiensis n$distance_mangroves 0.0020795
6 abudefduf_vaigiensis n$mpanon-mpa 0.0012202
7 abudefduf_vaigiensis n$depth10m 0.0002026
8 abudefduf_vaigiensis n$northsouth 0.0010107
9 abudefduf_vaigiensis n\(distance_seagrass:log(n\)size_seagrass) 0.0001835
10 abudefduf_vaigiensis n\(distance_seagrass:n\)depth10m 0.0000013
11 abudefduf_vaigiensis log(n\(size_seagrass):n\)depth10m 0.0016766
14 cheilio_inermis n$depth10m 0.0057399
22 cheilodipterus_quinquelineatus log(n$size_mangroves) 0.0000002
32 cheilodipterus_quinquelineatus n$distance_mangroves 0.0000000
42 cheilodipterus_quinquelineatus n$mpanon-mpa 0.0000011
51 cheilodipterus_quinquelineatus n$northsouth 0.0000002
61 cheilodipterus_quinquelineatus n\(distance_seagrass:log(n\)size_seagrass) 0.0260604
71 cheilodipterus_quinquelineatus n\(distance_seagrass:n\)depth10m 0.0025727
81 cheilodipterus_quinquelineatus log(n\(size_seagrass):n\)depth10m 0.0000002
91 cheilodipterus_quinquelineatus n\(distance_mangroves:n\)depth10m 0.0001081
101 cheilodipterus_quinquelineatus n\(distance_seagrass:log(n\)size_seagrass):n$depth10m 0.0000341
24 fistularia_commersonii n$distance_seagrass 0.0328563
25 fistularia_commersonii log(n$size_seagrass) 0.0406923
26 fistularia_commersonii n$distance_mangroves 0.0146087
27 fistularia_commersonii n$mpanon-mpa 0.0107055
28 fistularia_commersonii n$northsouth 0.0486197
29 fistularia_commersonii n\(distance_seagrass:log(n\)size_mangroves) 0.0259648
23 halichoeres_hortulanus n$distance_seagrass 0.0059966
33 halichoeres_hortulanus log(n$size_seagrass) 0.0129899
43 halichoeres_hortulanus log(n$size_mangroves) 0.0089956
52 halichoeres_hortulanus n$distance_mangroves 0.0099240
62 halichoeres_hortulanus n$mpanon-mpa 0.0278040
72 halichoeres_hortulanus n$northsouth 0.0105687
82 halichoeres_hortulanus n\(distance_seagrass:log(n\)size_mangroves) 0.0066500
37 mulloidichthys_flavolineatus n$distance_seagrass 0.0166240
38 mulloidichthys_flavolineatus n$distance_mangroves 0.0020101
39 mulloidichthys_flavolineatus n$mpanon-mpa 0.0002878
40 parupeneus_barberinoides n$distance_seagrass 0.0001620
411 scolopsis_ciliata n$depth10m 0.0207127
421 scolopsis_ciliata n\(distance_seagrass:n\)depth10m 0.0084546

log(size_seagrass) & log(distance_mangroves)

glm_tab <- data.frame(species=c(), coefficient=c(), pvalue=c())

speciesrows <- c(1:3,25:28,36,39,40,42,47,52:54,58,66,84:86,88,91:100,102:104)
for (spnum in speciesrows){
  sp <- df.species_all[spnum,]
  print(sp$colname)
  n <- subset(df.sample_data, df.sample_data[c(sp$colname_pres)] > 0)
  if(nrow(n)<5){
    print("Less than 5 rows remaining in subset")
    next
  }
  if(length(unique(n$depth))==1 & length(unique(n$mpa))>1){
    formula <- n[,c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$north
  }
  else if (length(unique(n$depth))>1 & length(unique(n$mpa))==1){
    formula <- n[,c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$depth * n$north  
  }
  else if (length(unique(n$depth))==1 & length(unique(n$mpa))==1){
    formula <- n[,c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$north  
  }
  else{
    formula <- n[,c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north  
  }
  print(paste("Formula",sp$colname,":",as.character(formula)))
  res <- NULL
  tryCatch(
  res <- glm(formula, family="poisson"),
    error=function(e){ print("GLM kon niet uitgevoerd worden.");print(geterrmessage())}
  )
  if(is.null(res)){
    next
  }
  
  coefs <- as.data.frame(coef(summary(res)))
  coefs <- subset(coefs,coefs$`Pr(>|z|)`<=0.05)
  coefs <- data.frame(species=rep(sp$colname,nrow(coefs)),coefficient=rownames(coefs),pvalue=coefs$`Pr(>|z|)`)
  coefs <- subset(coefs, coefs$coefficient != '(Intercept)')
  
  if(nrow(coefs)==0){
    next
  }
  glm_tab <- rbind(glm_tab, coefs)
  print(paste("AIC",sp$colname,": ",summary(res)$aic))
  par(mfrow=c(1,2)) 
  plot(fitted(res),residuals(res),xlab="Fitted values", ylab="Residuals", abline(h=0, lty=2))
  title(sp$colname)
  tryCatch( 
    lines(smooth.spline(fitted(res), residuals(res))), 
    error=function(e){}  )
  qqnorm(res$residuals)
  qqline(res$residuals) 
}
## [1] "abudefduf_lorenzi"
## [1] "Less than 5 rows remaining in subset"
## [1] "abudefduf_sexfasciatus"
## [1] "Formula abudefduf_sexfasciatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_sexfasciatus :  126.58813996457"

## [1] "abudefduf_vaigiensis"
## [1] "Formula abudefduf_vaigiensis : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_vaigiensis :  761.404862459547"

## [1] "cheilinus_chlorourus"
## [1] "Formula cheilinus_chlorourus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "cheilinus_undulatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "cheilio_inermis"
## [1] "Formula cheilio_inermis : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC cheilio_inermis :  137.853053579635"

## [1] "cheilodipterus_quinquelineatus"
## [1] "Formula cheilodipterus_quinquelineatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC cheilodipterus_quinquelineatus :  1484.15649033751"

## [1] "fistularia_commersonii"
## [1] "Formula fistularia_commersonii : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC fistularia_commersonii :  203.808555954373"

## [1] "halichoeres_argus"
## [1] "Formula halichoeres_argus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "halichoeres_hortulanus"
## [1] "Formula halichoeres_hortulanus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC halichoeres_hortulanus :  621.430719922767"

## [1] "halichoeres_scapularis"
## [1] "Formula halichoeres_scapularis : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lethrinus_harak"
## [1] "Less than 5 rows remaining in subset"
## [1] "lutjanus_decussatus"
## [1] "Formula lutjanus_decussatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_gibbus"
## [1] "Formula lutjanus_gibbus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_monostigma"
## [1] "Formula lutjanus_monostigma : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "mulloidichthys_flavolineatus"
## [1] "Formula mulloidichthys_flavolineatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC mulloidichthys_flavolineatus :  98.1906269028388"

## [1] "parupeneus_barberinus"
## [1] "Formula parupeneus_barberinus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinus :  633.195660521307"

## [1] "siganus_guttatus"
## [1] "Formula siganus_guttatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "siganus_virgatus"
## [1] "Formula siganus_virgatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "sphyraena_barracuda"
## [1] "Less than 5 rows remaining in subset"
## [1] "stethojulis_trilineata"
## [1] "Formula stethojulis_trilineata : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "plectorhinchus_flavomaculatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "plectorhinchus_lineatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_microdon"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_obsoletus"
## [1] "Formula lethrinus_obsoletus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$north"
## [1] "lutjanus_ehrenbergii"
## [1] "Formula lutjanus_ehrenbergii : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_fulviflamma"
## [1] "Formula lutjanus_fulviflamma : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$north"
## [1] "lutjanus_fulvus"
## [1] "Formula lutjanus_fulvus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "parupeneus_barberinoides"
## [1] "Formula parupeneus_barberinoides : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinoides :  166.731713851202"

## [1] "scolopsis_bilineata"
## [1] "Formula scolopsis_bilineata : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_bilineata :  843.933588478539"

## [1] "scolopsis_ciliata"
## [1] "Formula scolopsis_ciliata : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_ciliata :  456.994991112409"

## [1] "scarus_psittacus"
## [1] "Formula scarus_psittacus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "epinephelus_merra"
## [1] "Formula epinephelus_merra : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "siganus_spinus"
## [1] "Formula siganus_spinus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * n$size_mangroves * log(n$distance_mangroves) * n$depth * n$north"
knitr::kable(glm_tab, escape=TRUE)
species coefficient pvalue
1 abudefduf_sexfasciatus log(n$size_seagrass) 0.0179729
2 abudefduf_sexfasciatus log(n$distance_mangroves) 0.0266833
21 abudefduf_vaigiensis n$distance_seagrass 0.0000034
3 abudefduf_vaigiensis log(n$size_seagrass) 0.0002633
4 abudefduf_vaigiensis n$size_mangroves 0.0009244
5 abudefduf_vaigiensis log(n$distance_mangroves) 0.0019656
6 abudefduf_vaigiensis n$depth10m 0.0002026
7 abudefduf_vaigiensis n$northsouth 0.0007809
8 abudefduf_vaigiensis n\(distance_seagrass:log(n\)size_seagrass) 0.0002590
9 abudefduf_vaigiensis n\(distance_seagrass:n\)depth10m 0.0000013
10 abudefduf_vaigiensis log(n\(size_seagrass):n\)depth10m 0.0016766
12 cheilio_inermis n$depth10m 0.0057399
13 cheilodipterus_quinquelineatus n$distance_seagrass 0.0004843
14 cheilodipterus_quinquelineatus log(n$size_seagrass) 0.0000000
15 cheilodipterus_quinquelineatus n$size_mangroves 0.0000000
16 cheilodipterus_quinquelineatus log(n$distance_mangroves) 0.0000000
17 cheilodipterus_quinquelineatus n$mpanon-mpa 0.0000000
18 cheilodipterus_quinquelineatus n$depth10m 0.0033293
19 cheilodipterus_quinquelineatus n$northsouth 0.0000000
20 cheilodipterus_quinquelineatus n\(distance_seagrass:log(n\)size_seagrass) 0.0000000
211 cheilodipterus_quinquelineatus log(n\(size_seagrass):n\)depth10m 0.0054286
22 cheilodipterus_quinquelineatus n\(size_mangroves:n\)depth10m 0.0000155
23 cheilodipterus_quinquelineatus log(n\(distance_mangroves):n\)depth10m 0.0008221
24 cheilodipterus_quinquelineatus n\(mpanon-mpa:n\)depth10m 0.0000943
25 cheilodipterus_quinquelineatus n\(depth10m:n\)northsouth 0.0000343
26 fistularia_commersonii log(n$size_seagrass) 0.0411079
27 fistularia_commersonii log(n$distance_mangroves) 0.0152579
28 halichoeres_hortulanus n$distance_seagrass 0.0003595
29 halichoeres_hortulanus log(n$size_seagrass) 0.0093301
30 halichoeres_hortulanus n$size_mangroves 0.0323553
31 halichoeres_hortulanus log(n$distance_mangroves) 0.0103440
32 halichoeres_hortulanus n$mpanon-mpa 0.0013058
33 halichoeres_hortulanus n\(distance_seagrass:log(n\)size_seagrass) 0.0042878
34 mulloidichthys_flavolineatus n$distance_seagrass 0.0078900
35 mulloidichthys_flavolineatus log(n$size_seagrass) 0.0005353
36 mulloidichthys_flavolineatus log(n$distance_mangroves) 0.0023050
37 mulloidichthys_flavolineatus n$mpanon-mpa 0.0226706
210 parupeneus_barberinus n\(distance_seagrass:n\)size_mangroves 0.0463536
39 parupeneus_barberinoides n$distance_seagrass 0.0001312
40 scolopsis_bilineata n$depth10m 0.0332285
41 scolopsis_bilineata n\(distance_seagrass:n\)size_mangroves:n$depth10m 0.0234958
42 scolopsis_ciliata n$depth10m 0.0207127
43 scolopsis_ciliata n\(distance_seagrass:n\)depth10m 0.0084546

log(size_seagrass), log(distance_mangroves) & log(size_mangroves)

glm_tab <- data.frame(species=c(), coefficient=c(), pvalue=c())

speciesrows <- c(1:3,25:28,36,39,40,42,47,52:54,58,66,84:86,88,91:100,102:104)
for (spnum in speciesrows){
  sp <- df.species_all[spnum,]
  print(sp$colname)
  n <- subset(df.sample_data, df.sample_data[c(sp$colname_pres)] > 0)
  if(nrow(n)<5){
    print("Less than 5 rows remaining in subset")
    next
  }
  if(length(unique(n$depth))==1 & length(unique(n$mpa))>1){
    formula <- n[,c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$north
  }
  else if (length(unique(n$depth))>1 & length(unique(n$mpa))==1){
    formula <- n[,c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$depth * n$north  
  }
  else if (length(unique(n$depth))==1 & length(unique(n$mpa))==1){
    formula <- n[,c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$north  
  }
  else{
    formula <- n[,c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north  
  }
  print(paste("Formula",sp$colname,":",as.character(formula)))
  res <- NULL
  tryCatch(
  res <- glm(formula, family="poisson"),
    error=function(e){ print("GLM kon niet uitgevoerd worden.");print(geterrmessage())}
  )
  if(is.null(res)){
    next
  }
  
  coefs <- as.data.frame(coef(summary(res)))
  coefs <- subset(coefs,coefs$`Pr(>|z|)`<=0.05)
  coefs <- data.frame(species=rep(sp$colname,nrow(coefs)),coefficient=rownames(coefs),pvalue=coefs$`Pr(>|z|)`)
  coefs <- subset(coefs, coefs$coefficient != '(Intercept)')
  
  if(nrow(coefs)==0){
    next
  }
  glm_tab <- rbind(glm_tab, coefs)
  print(paste("AIC",sp$colname,": ",summary(res)$aic))
  par(mfrow=c(1,2)) 
  plot(fitted(res),residuals(res),xlab="Fitted values", ylab="Residuals", abline(h=0, lty=2))
  title(sp$colname)
  tryCatch( 
    lines(smooth.spline(fitted(res), residuals(res))), 
    error=function(e){}  )
  qqnorm(res$residuals)
  qqline(res$residuals) 
}
## [1] "abudefduf_lorenzi"
## [1] "Less than 5 rows remaining in subset"
## [1] "abudefduf_sexfasciatus"
## [1] "Formula abudefduf_sexfasciatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_sexfasciatus :  126.58813996457"

## [1] "abudefduf_vaigiensis"
## [1] "Formula abudefduf_vaigiensis : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_vaigiensis :  761.404862459547"

## [1] "cheilinus_chlorourus"
## [1] "Formula cheilinus_chlorourus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "cheilinus_undulatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "cheilio_inermis"
## [1] "Formula cheilio_inermis : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC cheilio_inermis :  137.853053579635"

## [1] "cheilodipterus_quinquelineatus"
## [1] "Formula cheilodipterus_quinquelineatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC cheilodipterus_quinquelineatus :  1484.15649033751"

## [1] "fistularia_commersonii"
## [1] "Formula fistularia_commersonii : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC fistularia_commersonii :  203.808555954373"

## [1] "halichoeres_argus"
## [1] "Formula halichoeres_argus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "halichoeres_hortulanus"
## [1] "Formula halichoeres_hortulanus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC halichoeres_hortulanus :  621.430719922767"

## [1] "halichoeres_scapularis"
## [1] "Formula halichoeres_scapularis : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lethrinus_harak"
## [1] "Less than 5 rows remaining in subset"
## [1] "lutjanus_decussatus"
## [1] "Formula lutjanus_decussatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_gibbus"
## [1] "Formula lutjanus_gibbus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_monostigma"
## [1] "Formula lutjanus_monostigma : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "mulloidichthys_flavolineatus"
## [1] "Formula mulloidichthys_flavolineatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC mulloidichthys_flavolineatus :  98.1906269028388"

## [1] "parupeneus_barberinus"
## [1] "Formula parupeneus_barberinus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinus :  633.195660521307"

## [1] "siganus_guttatus"
## [1] "Formula siganus_guttatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "siganus_virgatus"
## [1] "Formula siganus_virgatus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "sphyraena_barracuda"
## [1] "Less than 5 rows remaining in subset"
## [1] "stethojulis_trilineata"
## [1] "Formula stethojulis_trilineata : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "plectorhinchus_flavomaculatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "plectorhinchus_lineatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_microdon"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_obsoletus"
## [1] "Formula lethrinus_obsoletus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$north"
## [1] "lutjanus_ehrenbergii"
## [1] "Formula lutjanus_ehrenbergii : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_fulviflamma"
## [1] "Formula lutjanus_fulviflamma : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$north"
## [1] "lutjanus_fulvus"
## [1] "Formula lutjanus_fulvus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "parupeneus_barberinoides"
## [1] "Formula parupeneus_barberinoides : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinoides :  166.731713851202"

## [1] "scolopsis_bilineata"
## [1] "Formula scolopsis_bilineata : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "scolopsis_ciliata"
## [1] "Formula scolopsis_ciliata : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_ciliata :  456.994991112409"

## [1] "scarus_psittacus"
## [1] "Formula scarus_psittacus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "epinephelus_merra"
## [1] "Formula epinephelus_merra : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "siganus_spinus"
## [1] "Formula siganus_spinus : n[, c(sp$colname)] ~ n$distance_seagrass * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$depth * n$north"
knitr::kable(glm_tab, escape=TRUE)
species coefficient pvalue
1 abudefduf_sexfasciatus log(n$size_seagrass) 0.0344264
2 abudefduf_vaigiensis n$distance_seagrass 0.0000049
3 abudefduf_vaigiensis log(n$size_seagrass) 0.0002024
4 abudefduf_vaigiensis log(n$size_mangroves) 0.0009244
5 abudefduf_vaigiensis log(n$distance_mangroves) 0.0020795
6 abudefduf_vaigiensis n$mpanon-mpa 0.0115530
7 abudefduf_vaigiensis n$depth10m 0.0002026
8 abudefduf_vaigiensis n$northsouth 0.0007416
9 abudefduf_vaigiensis n\(distance_seagrass:log(n\)size_seagrass) 0.0000672
10 abudefduf_vaigiensis n\(distance_seagrass:n\)depth10m 0.0000013
11 abudefduf_vaigiensis log(n\(size_seagrass):n\)depth10m 0.0016766
12 cheilio_inermis n$depth10m 0.0057399
21 cheilodipterus_quinquelineatus n$distance_seagrass 0.0000001
31 cheilodipterus_quinquelineatus log(n$size_seagrass) 0.0000000
41 cheilodipterus_quinquelineatus log(n$size_mangroves) 0.0000000
51 cheilodipterus_quinquelineatus log(n$distance_mangroves) 0.0000000
61 cheilodipterus_quinquelineatus n$mpanon-mpa 0.0000000
71 cheilodipterus_quinquelineatus n$depth10m 0.0000137
81 cheilodipterus_quinquelineatus n$northsouth 0.0000000
91 cheilodipterus_quinquelineatus n\(distance_seagrass:log(n\)size_seagrass) 0.0000000
101 cheilodipterus_quinquelineatus log(n\(size_seagrass):n\)depth10m 0.0011066
111 cheilodipterus_quinquelineatus log(n\(size_mangroves):n\)depth10m 0.0000155
121 cheilodipterus_quinquelineatus log(n\(distance_mangroves):n\)depth10m 0.0001081
13 cheilodipterus_quinquelineatus n\(mpanon-mpa:n\)depth10m 0.0000085
14 cheilodipterus_quinquelineatus n\(depth10m:n\)northsouth 0.0000190
15 cheilodipterus_quinquelineatus n\(distance_seagrass:log(n\)size_seagrass):n$depth10m 0.0023942
27 fistularia_commersonii log(n$distance_mangroves) 0.0146087
28 halichoeres_hortulanus log(n$size_seagrass) 0.0093844
29 halichoeres_hortulanus log(n$size_mangroves) 0.0327519
30 halichoeres_hortulanus log(n$distance_mangroves) 0.0099240
311 halichoeres_hortulanus n$mpanon-mpa 0.0013420
32 halichoeres_hortulanus n\(distance_seagrass:log(n\)size_seagrass) 0.0035987
33 mulloidichthys_flavolineatus n$distance_seagrass 0.0071981
34 mulloidichthys_flavolineatus log(n$size_seagrass) 0.0006837
35 mulloidichthys_flavolineatus log(n$distance_mangroves) 0.0020101
36 mulloidichthys_flavolineatus n$mpanon-mpa 0.0219319
37 parupeneus_barberinus n$northsouth 0.0467278
38 parupeneus_barberinoides n$distance_seagrass 0.0001620
39 scolopsis_ciliata n$depth10m 0.0207127
40 scolopsis_ciliata n\(distance_seagrass:n\)depth10m 0.0084546

log(distance_seagrass) & log(distance_mangroves)

glm_tab <- data.frame(species=c(), coefficient=c(), pvalue=c())

speciesrows <- c(1:3,25:28,36,39,40,42,47,52:54,58,66,84:86,88,91:100,102:104)
for (spnum in speciesrows){
  sp <- df.species_all[spnum,]
  print(sp$colname)
  n <- subset(df.sample_data, df.sample_data[c(sp$colname_pres)] > 0)
  if(nrow(n)<5){
    print("Less than 5 rows remaining in subset")
    next
  }
  if(length(unique(n$depth))==1 & length(unique(n$mpa))>1){
    formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$north
  }
  else if (length(unique(n$depth))>1 & length(unique(n$mpa))==1){
    formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$depth * n$north  
  }
  else if (length(unique(n$depth))==1 & length(unique(n$mpa))==1){
    formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$north  
  }
  else{
    formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north  
  }
  print(paste("Formula",sp$colname,":",as.character(formula)))
  res <- NULL
  tryCatch(
  res <- glm(formula, family="poisson"),
    error=function(e){ print("GLM kon niet uitgevoerd worden.");print(geterrmessage())}
  )
  if(is.null(res)){
    next
  }
  
  coefs <- as.data.frame(coef(summary(res)))
  coefs <- subset(coefs,coefs$`Pr(>|z|)`<=0.05)
  coefs <- data.frame(species=rep(sp$colname,nrow(coefs)),coefficient=rownames(coefs),pvalue=coefs$`Pr(>|z|)`)
  coefs <- subset(coefs, coefs$coefficient != '(Intercept)')
  
  if(nrow(coefs)==0){
    next
  }
  glm_tab <- rbind(glm_tab, coefs)
  print(paste("AIC",sp$colname,": ",summary(res)$aic))
  par(mfrow=c(1,2)) 
  plot(fitted(res),residuals(res),xlab="Fitted values", ylab="Residuals", abline(h=0, lty=2))
  title(sp$colname)
  tryCatch( 
    lines(smooth.spline(fitted(res), residuals(res))), 
    error=function(e){}  )
  qqnorm(res$residuals)
  qqline(res$residuals) 
}
## [1] "abudefduf_lorenzi"
## [1] "Less than 5 rows remaining in subset"
## [1] "abudefduf_sexfasciatus"
## [1] "Formula abudefduf_sexfasciatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_sexfasciatus :  126.58813996457"

## [1] "abudefduf_vaigiensis"
## [1] "Formula abudefduf_vaigiensis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_vaigiensis :  761.404862459547"

## [1] "cheilinus_chlorourus"
## [1] "Formula cheilinus_chlorourus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "cheilinus_undulatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "cheilio_inermis"
## [1] "Formula cheilio_inermis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC cheilio_inermis :  137.853053579635"

## [1] "cheilodipterus_quinquelineatus"
## [1] "Formula cheilodipterus_quinquelineatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC cheilodipterus_quinquelineatus :  1484.15649033751"

## [1] "fistularia_commersonii"
## [1] "Formula fistularia_commersonii : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "halichoeres_argus"
## [1] "Formula halichoeres_argus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "halichoeres_hortulanus"
## [1] "Formula halichoeres_hortulanus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC halichoeres_hortulanus :  621.430719922767"

## [1] "halichoeres_scapularis"
## [1] "Formula halichoeres_scapularis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lethrinus_harak"
## [1] "Less than 5 rows remaining in subset"
## [1] "lutjanus_decussatus"
## [1] "Formula lutjanus_decussatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_gibbus"
## [1] "Formula lutjanus_gibbus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_monostigma"
## [1] "Formula lutjanus_monostigma : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "mulloidichthys_flavolineatus"
## [1] "Formula mulloidichthys_flavolineatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC mulloidichthys_flavolineatus :  98.1906269028388"

## [1] "parupeneus_barberinus"
## [1] "Formula parupeneus_barberinus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinus :  633.195660521307"

## [1] "siganus_guttatus"
## [1] "Formula siganus_guttatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "siganus_virgatus"
## [1] "Formula siganus_virgatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "sphyraena_barracuda"
## [1] "Less than 5 rows remaining in subset"
## [1] "stethojulis_trilineata"
## [1] "Formula stethojulis_trilineata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "plectorhinchus_flavomaculatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "plectorhinchus_lineatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_microdon"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_obsoletus"
## [1] "Formula lethrinus_obsoletus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$north"
## [1] "lutjanus_ehrenbergii"
## [1] "Formula lutjanus_ehrenbergii : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_fulviflamma"
## [1] "Formula lutjanus_fulviflamma : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$north"
## [1] "AIC lutjanus_fulviflamma :  37.6524153062094"

## [1] "lutjanus_fulvus"
## [1] "Formula lutjanus_fulvus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "parupeneus_barberinoides"
## [1] "Formula parupeneus_barberinoides : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinoides :  166.731713851202"

## [1] "scolopsis_bilineata"
## [1] "Formula scolopsis_bilineata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_bilineata :  843.933588478539"

## [1] "scolopsis_ciliata"
## [1] "Formula scolopsis_ciliata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_ciliata :  456.994991112409"

## [1] "scarus_psittacus"
## [1] "Formula scarus_psittacus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "epinephelus_merra"
## [1] "Formula epinephelus_merra : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "siganus_spinus"
## [1] "Formula siganus_spinus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * n$size_mangroves * log(n$distance_mangroves) * n$depth * n$north"
knitr::kable(glm_tab, escape=TRUE)
species coefficient pvalue
1 abudefduf_sexfasciatus n$size_seagrass 0.0392477
2 abudefduf_sexfasciatus n$size_mangroves 0.0497482
3 abudefduf_sexfasciatus log(n\(distance_seagrass):n\)size_seagrass 0.0059002
21 abudefduf_vaigiensis log(n$distance_seagrass) 0.0002270
31 abudefduf_vaigiensis n$size_seagrass 0.0002630
4 abudefduf_vaigiensis n$size_mangroves 0.0003707
5 abudefduf_vaigiensis log(n$distance_mangroves) 0.0021998
6 abudefduf_vaigiensis n$mpanon-mpa 0.0014699
7 abudefduf_vaigiensis n$depth10m 0.0000014
8 abudefduf_vaigiensis n$northsouth 0.0022516
9 abudefduf_vaigiensis log(n\(distance_seagrass):n\)size_seagrass 0.0008789
10 abudefduf_vaigiensis log(n\(distance_seagrass):n\)depth10m 0.0000186
11 abudefduf_vaigiensis n\(size_seagrass:n\)depth10m 0.0016766
14 cheilio_inermis n$depth10m 0.0057399
22 cheilodipterus_quinquelineatus log(n$distance_seagrass) 0.0004298
32 cheilodipterus_quinquelineatus n$size_seagrass 0.0000000
41 cheilodipterus_quinquelineatus n$size_mangroves 0.0022527
51 cheilodipterus_quinquelineatus log(n$distance_mangroves) 0.0003456
61 cheilodipterus_quinquelineatus log(n\(distance_seagrass):n\)size_seagrass 0.0000000
71 cheilodipterus_quinquelineatus n\(size_mangroves:n\)depth10m 0.0112231
81 cheilodipterus_quinquelineatus n\(mpanon-mpa:n\)depth10m 0.0094656
91 cheilodipterus_quinquelineatus log(n\(distance_seagrass):n\)size_seagrass:n$depth10m 0.0103284
23 halichoeres_hortulanus log(n$distance_seagrass) 0.0288915
33 halichoeres_hortulanus n$size_mangroves 0.0056661
42 halichoeres_hortulanus n$mpanon-mpa 0.0012214
52 halichoeres_hortulanus n$northsouth 0.0006473
62 halichoeres_hortulanus log(n\(distance_seagrass):n\)size_mangroves 0.0065564
28 mulloidichthys_flavolineatus log(n$distance_seagrass) 0.0007029
29 mulloidichthys_flavolineatus log(n$distance_mangroves) 0.0074226
30 mulloidichthys_flavolineatus n$mpanon-mpa 0.0011043
24 parupeneus_barberinus log(n$distance_seagrass) 0.0088265
34 parupeneus_barberinus n$size_seagrass 0.0047117
43 parupeneus_barberinus n$size_mangroves 0.0218534
53 parupeneus_barberinus log(n$distance_mangroves) 0.0189358
63 parupeneus_barberinus n$northsouth 0.0061157
72 parupeneus_barberinus log(n\(distance_seagrass):n\)size_seagrass 0.0042743
82 parupeneus_barberinus log(n\(distance_seagrass):n\)size_mangroves 0.0182459
25 lutjanus_fulviflamma n$size_seagrass 0.0487377
39 parupeneus_barberinoides log(n$distance_seagrass) 0.0001737
40 scolopsis_bilineata n$depth10m 0.0440425
411 scolopsis_bilineata n\(size_seagrass:n\)depth10m 0.0121483
421 scolopsis_bilineata log(n\(distance_mangroves):n\)depth10m 0.0291154
431 scolopsis_bilineata log(n\(distance_seagrass):n\)size_seagrass:n$depth10m 0.0366272
44 scolopsis_ciliata n$depth10m 0.0001206
45 scolopsis_ciliata log(n\(distance_seagrass):n\)depth10m 0.0001718

log(distance_seagrass) & log(size_mangroves)

glm_tab <- data.frame(species=c(), coefficient=c(), pvalue=c())

speciesrows <- c(1:3,25:28,36,39,40,42,47,52:54,58,66,84:86,88,91:100,102:104)
for (spnum in speciesrows){
  sp <- df.species_all[spnum,]
  print(sp$colname)
  n <- subset(df.sample_data, df.sample_data[c(sp$colname_pres)] > 0)
  if(nrow(n)<5){
    print("Less than 5 rows remaining in subset")
    next
  }
  if(length(unique(n$depth))==1 & length(unique(n$mpa))>1){
    formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$north
  }
  else if (length(unique(n$depth))>1 & length(unique(n$mpa))==1){
    formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$depth * n$north  
  }
  else if (length(unique(n$depth))==1 & length(unique(n$mpa))==1){
    formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$north  
  }
  else{
    formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north  
  }
  print(paste("Formula",sp$colname,":",as.character(formula)))
  res <- NULL
  tryCatch(
  res <- glm(formula, family="poisson"),
    error=function(e){ print("GLM kon niet uitgevoerd worden.");print(geterrmessage())}
  )
  if(is.null(res)){
    next
  }
  
  coefs <- as.data.frame(coef(summary(res)))
  coefs <- subset(coefs,coefs$`Pr(>|z|)`<=0.05)
  coefs <- data.frame(species=rep(sp$colname,nrow(coefs)),coefficient=rownames(coefs),pvalue=coefs$`Pr(>|z|)`)
  coefs <- subset(coefs, coefs$coefficient != '(Intercept)')
  
  if(nrow(coefs)==0){
    next
  }
  glm_tab <- rbind(glm_tab, coefs)
  print(paste("AIC",sp$colname,": ",summary(res)$aic))
  par(mfrow=c(1,2)) 
  plot(fitted(res),residuals(res),xlab="Fitted values", ylab="Residuals", abline(h=0, lty=2))
  title(sp$colname)
  tryCatch( 
    lines(smooth.spline(fitted(res), residuals(res))), 
    error=function(e){}  )
  qqnorm(res$residuals)
  qqline(res$residuals) 
}
## [1] "abudefduf_lorenzi"
## [1] "Less than 5 rows remaining in subset"
## [1] "abudefduf_sexfasciatus"
## [1] "Formula abudefduf_sexfasciatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_sexfasciatus :  126.58813996457"

## [1] "abudefduf_vaigiensis"
## [1] "Formula abudefduf_vaigiensis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_vaigiensis :  761.404862459547"

## [1] "cheilinus_chlorourus"
## [1] "Formula cheilinus_chlorourus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "cheilinus_undulatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "cheilio_inermis"
## [1] "Formula cheilio_inermis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC cheilio_inermis :  137.853053579635"

## [1] "cheilodipterus_quinquelineatus"
## [1] "Formula cheilodipterus_quinquelineatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC cheilodipterus_quinquelineatus :  1484.15649033751"

## [1] "fistularia_commersonii"
## [1] "Formula fistularia_commersonii : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "halichoeres_argus"
## [1] "Formula halichoeres_argus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "halichoeres_hortulanus"
## [1] "Formula halichoeres_hortulanus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC halichoeres_hortulanus :  621.430719922767"

## [1] "halichoeres_scapularis"
## [1] "Formula halichoeres_scapularis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lethrinus_harak"
## [1] "Less than 5 rows remaining in subset"
## [1] "lutjanus_decussatus"
## [1] "Formula lutjanus_decussatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_gibbus"
## [1] "Formula lutjanus_gibbus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_monostigma"
## [1] "Formula lutjanus_monostigma : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "mulloidichthys_flavolineatus"
## [1] "Formula mulloidichthys_flavolineatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC mulloidichthys_flavolineatus :  98.1906269028389"

## [1] "parupeneus_barberinus"
## [1] "Formula parupeneus_barberinus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinus :  633.195660521307"

## [1] "siganus_guttatus"
## [1] "Formula siganus_guttatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_virgatus"
## [1] "Formula siganus_virgatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "sphyraena_barracuda"
## [1] "Less than 5 rows remaining in subset"
## [1] "stethojulis_trilineata"
## [1] "Formula stethojulis_trilineata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "plectorhinchus_flavomaculatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "plectorhinchus_lineatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_microdon"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_obsoletus"
## [1] "Formula lethrinus_obsoletus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$north"
## [1] "lutjanus_ehrenbergii"
## [1] "Formula lutjanus_ehrenbergii : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "lutjanus_fulviflamma"
## [1] "Formula lutjanus_fulviflamma : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$north"
## [1] "AIC lutjanus_fulviflamma :  37.6524153062094"

## [1] "lutjanus_fulvus"
## [1] "Formula lutjanus_fulvus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "parupeneus_barberinoides"
## [1] "Formula parupeneus_barberinoides : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinoides :  166.731713851202"

## [1] "scolopsis_bilineata"
## [1] "Formula scolopsis_bilineata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_bilineata :  843.933588478539"

## [1] "scolopsis_ciliata"
## [1] "Formula scolopsis_ciliata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_ciliata :  456.994991112409"

## [1] "scarus_psittacus"
## [1] "Formula scarus_psittacus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "epinephelus_merra"
## [1] "Formula epinephelus_merra : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$mpa * n$depth * n$north"
## [1] "siganus_spinus"
## [1] "Formula siganus_spinus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * n$distance_mangroves * n$depth * n$north"
knitr::kable(glm_tab, escape=TRUE)
species coefficient pvalue
1 abudefduf_sexfasciatus n$size_seagrass 0.0463933
2 abudefduf_vaigiensis log(n$distance_seagrass) 0.0002138
3 abudefduf_vaigiensis n$size_seagrass 0.0014430
4 abudefduf_vaigiensis log(n$size_mangroves) 0.0001557
5 abudefduf_vaigiensis n$distance_mangroves 0.0020967
6 abudefduf_vaigiensis n$mpanon-mpa 0.0013417
7 abudefduf_vaigiensis n$depth10m 0.0000014
8 abudefduf_vaigiensis n$northsouth 0.0012362
9 abudefduf_vaigiensis log(n\(distance_seagrass):n\)size_seagrass 0.0012096
10 abudefduf_vaigiensis log(n\(distance_seagrass):n\)depth10m 0.0000186
11 abudefduf_vaigiensis n\(size_seagrass:n\)depth10m 0.0016766
12 cheilio_inermis n$depth10m 0.0057399
21 cheilodipterus_quinquelineatus log(n$distance_seagrass) 0.0008526
31 cheilodipterus_quinquelineatus n$size_seagrass 0.0000178
41 cheilodipterus_quinquelineatus log(n$size_mangroves) 0.0017893
51 cheilodipterus_quinquelineatus n$distance_mangroves 0.0003605
61 cheilodipterus_quinquelineatus n$depth10m 0.0055779
71 cheilodipterus_quinquelineatus n$northsouth 0.0000440
81 cheilodipterus_quinquelineatus log(n\(distance_seagrass):n\)size_seagrass 0.0039681
91 cheilodipterus_quinquelineatus n\(size_seagrass:n\)depth10m 0.0026726
101 cheilodipterus_quinquelineatus log(n\(size_mangroves):n\)depth10m 0.0137667
111 cheilodipterus_quinquelineatus log(n\(distance_seagrass):n\)size_seagrass:n$depth10m 0.0104406
22 halichoeres_hortulanus log(n$distance_seagrass) 0.0094783
32 halichoeres_hortulanus log(n$size_mangroves) 0.0078039
42 halichoeres_hortulanus n$mpanon-mpa 0.0007428
52 halichoeres_hortulanus n$northsouth 0.0002184
62 halichoeres_hortulanus log(n\(distance_seagrass):n\)size_seagrass 0.0349378
72 halichoeres_hortulanus log(n\(distance_seagrass):log(n\)size_mangroves) 0.0081729
29 mulloidichthys_flavolineatus log(n$distance_seagrass) 0.0265570
30 mulloidichthys_flavolineatus n$distance_mangroves 0.0090560
311 mulloidichthys_flavolineatus n$mpanon-mpa 0.0171668
321 parupeneus_barberinus n$size_seagrass 0.0413453
33 parupeneus_barberinus n$distance_mangroves 0.0164943
23 lutjanus_fulviflamma n$size_seagrass 0.0487377
35 parupeneus_barberinoides log(n$distance_seagrass) 0.0002570
36 scolopsis_bilineata n\(distance_mangroves:n\)depth10m 0.0260803
37 scolopsis_ciliata n$depth10m 0.0001206
38 scolopsis_ciliata log(n\(distance_seagrass):n\)depth10m 0.0001718

log(distance_mangroves) & log(size_mangroves)

glm_tab <- data.frame(species=c(), coefficient=c(), pvalue=c())

speciesrows <- c(1:3,25:28,36,39,40,42,47,52:54,58,66,84:86,88,91:100,102:104)
for (spnum in speciesrows){
  sp <- df.species_all[spnum,]
  print(sp$colname)
  n <- subset(df.sample_data, df.sample_data[c(sp$colname_pres)] > 0)
  if(nrow(n)<5){
    print("Less than 5 rows remaining in subset")
    next
  }
  if(length(unique(n$depth))==1 & length(unique(n$mpa))>1){
    formula <- n[,c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$north
  }
  else if (length(unique(n$depth))>1 & length(unique(n$mpa))==1){
    formula <- n[,c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$depth * n$north  
  }
  else if (length(unique(n$depth))==1 & length(unique(n$mpa))==1){
    formula <- n[,c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$north  
  }
  else{
    formula <- n[,c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north  
  }
  print(paste("Formula",sp$colname,":",as.character(formula)))
  res <- NULL
  tryCatch(
  res <- glm(formula, family="poisson"),
    error=function(e){ print("GLM kon niet uitgevoerd worden.");print(geterrmessage())}
  )
  if(is.null(res)){
    next
  }
  
  coefs <- as.data.frame(coef(summary(res)))
  coefs <- subset(coefs,coefs$`Pr(>|z|)`<=0.05)
  coefs <- data.frame(species=rep(sp$colname,nrow(coefs)),coefficient=rownames(coefs),pvalue=coefs$`Pr(>|z|)`)
  coefs <- subset(coefs, coefs$coefficient != '(Intercept)')
  
  if(nrow(coefs)==0){
    next
  }
  glm_tab <- rbind(glm_tab, coefs)
  print(paste("AIC",sp$colname,": ",summary(res)$aic))
  par(mfrow=c(1,2)) 
  plot(fitted(res),residuals(res),xlab="Fitted values", ylab="Residuals", abline(h=0, lty=2))
  title(sp$colname)
  tryCatch( 
    lines(smooth.spline(fitted(res), residuals(res))), 
    error=function(e){}  )
  qqnorm(res$residuals)
  qqline(res$residuals) 
}
## [1] "abudefduf_lorenzi"
## [1] "Less than 5 rows remaining in subset"
## [1] "abudefduf_sexfasciatus"
## [1] "Formula abudefduf_sexfasciatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_sexfasciatus :  126.58813996457"

## [1] "abudefduf_vaigiensis"
## [1] "Formula abudefduf_vaigiensis : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_vaigiensis :  761.404862459547"

## [1] "cheilinus_chlorourus"
## [1] "Formula cheilinus_chlorourus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "cheilinus_undulatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "cheilio_inermis"
## [1] "Formula cheilio_inermis : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC cheilio_inermis :  137.853053579635"

## [1] "cheilodipterus_quinquelineatus"
## [1] "Formula cheilodipterus_quinquelineatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC cheilodipterus_quinquelineatus :  1484.15649033751"
## [1] "fistularia_commersonii"
## [1] "Formula fistularia_commersonii : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "halichoeres_argus"
## [1] "Formula halichoeres_argus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "halichoeres_hortulanus"
## [1] "Formula halichoeres_hortulanus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## Warning: glm.fit: algorithm did not converge

## [1] "halichoeres_scapularis"
## [1] "Formula halichoeres_scapularis : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lethrinus_harak"
## [1] "Less than 5 rows remaining in subset"
## [1] "lutjanus_decussatus"
## [1] "Formula lutjanus_decussatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_gibbus"
## [1] "Formula lutjanus_gibbus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_monostigma"
## [1] "Formula lutjanus_monostigma : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "mulloidichthys_flavolineatus"
## [1] "Formula mulloidichthys_flavolineatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC mulloidichthys_flavolineatus :  98.1906269028388"
## [1] "parupeneus_barberinus"
## [1] "Formula parupeneus_barberinus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## Warning: glm.fit: algorithm did not converge

## [1] "siganus_guttatus"
## [1] "Formula siganus_guttatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "siganus_virgatus"
## [1] "Formula siganus_virgatus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "sphyraena_barracuda"
## [1] "Less than 5 rows remaining in subset"
## [1] "stethojulis_trilineata"
## [1] "Formula stethojulis_trilineata : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "plectorhinchus_flavomaculatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "plectorhinchus_lineatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_microdon"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_obsoletus"
## [1] "Formula lethrinus_obsoletus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$north"
## [1] "lutjanus_ehrenbergii"
## [1] "Formula lutjanus_ehrenbergii : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_fulviflamma"
## [1] "Formula lutjanus_fulviflamma : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$north"
## [1] "lutjanus_fulvus"
## [1] "Formula lutjanus_fulvus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "parupeneus_barberinoides"
## [1] "Formula parupeneus_barberinoides : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinoides :  166.731713851202"
## [1] "scolopsis_bilineata"
## [1] "Formula scolopsis_bilineata : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## Warning: glm.fit: algorithm did not converge

## [1] "scolopsis_ciliata"
## [1] "Formula scolopsis_ciliata : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_ciliata :  456.994991112409"

## [1] "scarus_psittacus"
## [1] "Formula scarus_psittacus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "epinephelus_merra"
## [1] "Formula epinephelus_merra : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "siganus_spinus"
## [1] "Formula siganus_spinus : n[, c(sp$colname)] ~ n$distance_seagrass * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$depth * n$north"
knitr::kable(glm_tab, escape=TRUE)
species coefficient pvalue
1 abudefduf_sexfasciatus n\(distance_seagrass:n\)size_seagrass 0.0072771
2 abudefduf_vaigiensis n$distance_seagrass 0.0004432
3 abudefduf_vaigiensis n$size_seagrass 0.0007703
4 abudefduf_vaigiensis log(n$size_mangroves) 0.0004442
5 abudefduf_vaigiensis log(n$distance_mangroves) 0.0010258
6 abudefduf_vaigiensis n$mpanon-mpa 0.0008888
7 abudefduf_vaigiensis n$northsouth 0.0005413
8 abudefduf_vaigiensis n\(distance_seagrass:n\)size_seagrass 0.0008599
9 abudefduf_vaigiensis n\(distance_seagrass:n\)depth10m 0.0000186
10 abudefduf_vaigiensis n\(size_seagrass:n\)depth10m 0.0016766
11 cheilio_inermis n$depth10m 0.0057399
21 cheilodipterus_quinquelineatus n$distance_seagrass 0.0000543
31 cheilodipterus_quinquelineatus n$size_seagrass 0.0000000
41 cheilodipterus_quinquelineatus log(n$size_mangroves) 0.0000797
51 cheilodipterus_quinquelineatus log(n$distance_mangroves) 0.0000564
61 cheilodipterus_quinquelineatus n$mpanon-mpa 0.0057188
71 cheilodipterus_quinquelineatus n$northsouth 0.0000348
81 cheilodipterus_quinquelineatus n\(distance_seagrass:n\)size_seagrass 0.0000000
91 cheilodipterus_quinquelineatus n\(size_seagrass:n\)depth10m 0.0115788
101 cheilodipterus_quinquelineatus n\(mpanon-mpa:n\)depth10m 0.0249994
111 cheilodipterus_quinquelineatus n\(distance_seagrass:n\)size_seagrass:n$depth10m 0.0006490
22 mulloidichthys_flavolineatus n$distance_seagrass 0.0000959
23 mulloidichthys_flavolineatus n$size_seagrass 0.0004580
24 mulloidichthys_flavolineatus log(n$distance_mangroves) 0.0001436
25 mulloidichthys_flavolineatus n$mpanon-mpa 0.0002494
26 parupeneus_barberinoides n$distance_seagrass 0.0010270
27 scolopsis_ciliata n$depth10m 0.0078945
28 scolopsis_ciliata n\(distance_seagrass:n\)depth10m 0.0001718

log(distance_seagrass), log(distance_mangroves) & log(size_mangroves)

glm_tab <- data.frame(species=c(), coefficient=c(), pvalue=c())

speciesrows <- c(1:3,25:28,36,39,40,42,47,52:54,58,66,84:86,88,91:100,102:104)
for (spnum in speciesrows){
  sp <- df.species_all[spnum,]
  print(sp$colname)
  n <- subset(df.sample_data, df.sample_data[c(sp$colname_pres)] > 0)
  if(nrow(n)<5){
    print("Less than 5 rows remaining in subset")
    next
  }
  if(length(unique(n$depth))==1 & length(unique(n$mpa))>1){
    formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$north
  }
  else if (length(unique(n$depth))>1 & length(unique(n$mpa))==1){
    formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$depth * n$north  
  }
  else if (length(unique(n$depth))==1 & length(unique(n$mpa))==1){
    formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$north  
  }
  else{
    formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north  
  }
  print(paste("Formula",sp$colname,":",as.character(formula)))
  res <- NULL
  tryCatch(
  res <- glm(formula, family="poisson"),
    error=function(e){ print("GLM kon niet uitgevoerd worden.");print(geterrmessage())}
  )
  if(is.null(res)){
    next
  }
  
  coefs <- as.data.frame(coef(summary(res)))
  coefs <- subset(coefs,coefs$`Pr(>|z|)`<=0.05)
  coefs <- data.frame(species=rep(sp$colname,nrow(coefs)),coefficient=rownames(coefs),pvalue=coefs$`Pr(>|z|)`)
  coefs <- subset(coefs, coefs$coefficient != '(Intercept)')
  
  if(nrow(coefs)==0){
    next
  }
  glm_tab <- rbind(glm_tab, coefs)
  print(paste("AIC",sp$colname,": ",summary(res)$aic))
  par(mfrow=c(1,2)) 
  plot(fitted(res),residuals(res),xlab="Fitted values", ylab="Residuals", abline(h=0, lty=2))
  title(sp$colname)
  tryCatch( 
    lines(smooth.spline(fitted(res), residuals(res))), 
    error=function(e){}  )
  qqnorm(res$residuals)
  qqline(res$residuals) 
}
## [1] "abudefduf_lorenzi"
## [1] "Less than 5 rows remaining in subset"
## [1] "abudefduf_sexfasciatus"
## [1] "Formula abudefduf_sexfasciatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_sexfasciatus :  126.58813996457"

## [1] "abudefduf_vaigiensis"
## [1] "Formula abudefduf_vaigiensis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_vaigiensis :  761.404862459547"

## [1] "cheilinus_chlorourus"
## [1] "Formula cheilinus_chlorourus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "cheilinus_undulatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "cheilio_inermis"
## [1] "Formula cheilio_inermis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC cheilio_inermis :  137.853053579635"

## [1] "cheilodipterus_quinquelineatus"
## [1] "Formula cheilodipterus_quinquelineatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC cheilodipterus_quinquelineatus :  1484.15649033751"

## [1] "fistularia_commersonii"
## [1] "Formula fistularia_commersonii : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "halichoeres_argus"
## [1] "Formula halichoeres_argus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "halichoeres_hortulanus"
## [1] "Formula halichoeres_hortulanus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC halichoeres_hortulanus :  621.430719922767"

## [1] "halichoeres_scapularis"
## [1] "Formula halichoeres_scapularis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lethrinus_harak"
## [1] "Less than 5 rows remaining in subset"
## [1] "lutjanus_decussatus"
## [1] "Formula lutjanus_decussatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_gibbus"
## [1] "Formula lutjanus_gibbus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_monostigma"
## [1] "Formula lutjanus_monostigma : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "mulloidichthys_flavolineatus"
## [1] "Formula mulloidichthys_flavolineatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC mulloidichthys_flavolineatus :  98.1906269028389"

## [1] "parupeneus_barberinus"
## [1] "Formula parupeneus_barberinus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinus :  633.195660521307"

## [1] "siganus_guttatus"
## [1] "Formula siganus_guttatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "siganus_virgatus"
## [1] "Formula siganus_virgatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "sphyraena_barracuda"
## [1] "Less than 5 rows remaining in subset"
## [1] "stethojulis_trilineata"
## [1] "Formula stethojulis_trilineata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "plectorhinchus_flavomaculatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "plectorhinchus_lineatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_microdon"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_obsoletus"
## [1] "Formula lethrinus_obsoletus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$north"
## [1] "lutjanus_ehrenbergii"
## [1] "Formula lutjanus_ehrenbergii : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_fulviflamma"
## [1] "Formula lutjanus_fulviflamma : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$north"
## [1] "AIC lutjanus_fulviflamma :  37.6524153062094"

## [1] "lutjanus_fulvus"
## [1] "Formula lutjanus_fulvus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "parupeneus_barberinoides"
## [1] "Formula parupeneus_barberinoides : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinoides :  166.731713851202"

## [1] "scolopsis_bilineata"
## [1] "Formula scolopsis_bilineata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_bilineata :  843.933588478539"

## [1] "scolopsis_ciliata"
## [1] "Formula scolopsis_ciliata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_ciliata :  456.994991112409"

## [1] "scarus_psittacus"
## [1] "Formula scarus_psittacus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "epinephelus_merra"
## [1] "Formula epinephelus_merra : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "siganus_spinus"
## [1] "Formula siganus_spinus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * n$size_seagrass * log(n$size_mangroves) * log(n$distance_mangroves) * n$depth * n$north"
knitr::kable(glm_tab, escape=TRUE)
species coefficient pvalue
1 abudefduf_sexfasciatus n$size_seagrass 0.0404488
2 abudefduf_sexfasciatus log(n$size_mangroves) 0.0497482
3 abudefduf_sexfasciatus log(n\(distance_seagrass):n\)size_seagrass 0.0058995
21 abudefduf_vaigiensis log(n$distance_seagrass) 0.0002275
31 abudefduf_vaigiensis n$size_seagrass 0.0003546
4 abudefduf_vaigiensis log(n$size_mangroves) 0.0003707
5 abudefduf_vaigiensis log(n$distance_mangroves) 0.0020967
6 abudefduf_vaigiensis n$mpanon-mpa 0.0014231
7 abudefduf_vaigiensis n$depth10m 0.0000014
8 abudefduf_vaigiensis n$northsouth 0.0015942
9 abudefduf_vaigiensis log(n\(distance_seagrass):n\)size_seagrass 0.0008776
10 abudefduf_vaigiensis log(n\(distance_seagrass):n\)depth10m 0.0000186
11 abudefduf_vaigiensis n\(size_seagrass:n\)depth10m 0.0016766
14 cheilio_inermis n$depth10m 0.0057399
15 cheilodipterus_quinquelineatus log(n$distance_seagrass) 0.0004282
16 cheilodipterus_quinquelineatus n$size_seagrass 0.0000000
17 cheilodipterus_quinquelineatus log(n$size_mangroves) 0.0022527
18 cheilodipterus_quinquelineatus log(n$distance_mangroves) 0.0003605
19 cheilodipterus_quinquelineatus n$depth10m 0.0043554
20 cheilodipterus_quinquelineatus log(n\(distance_seagrass):n\)size_seagrass 0.0000000
211 cheilodipterus_quinquelineatus log(n\(size_mangroves):n\)depth10m 0.0112231
22 cheilodipterus_quinquelineatus n\(mpanon-mpa:n\)depth10m 0.0094756
23 cheilodipterus_quinquelineatus log(n\(distance_seagrass):n\)size_seagrass:n$depth10m 0.0101167
24 halichoeres_hortulanus log(n$distance_seagrass) 0.0073088
32 halichoeres_hortulanus log(n$size_mangroves) 0.0048756
41 halichoeres_hortulanus n$mpanon-mpa 0.0009862
51 halichoeres_hortulanus n$northsouth 0.0002722
61 halichoeres_hortulanus log(n\(distance_seagrass):log(n\)size_mangroves) 0.0060820
29 mulloidichthys_flavolineatus log(n$distance_seagrass) 0.0005879
30 mulloidichthys_flavolineatus log(n$distance_mangroves) 0.0090560
311 mulloidichthys_flavolineatus n$mpanon-mpa 0.0011129
25 parupeneus_barberinus log(n$distance_seagrass) 0.0166298
33 parupeneus_barberinus n$size_seagrass 0.0038628
42 parupeneus_barberinus log(n$size_mangroves) 0.0316462
52 parupeneus_barberinus log(n$distance_mangroves) 0.0164943
62 parupeneus_barberinus n$mpanon-mpa 0.0484746
71 parupeneus_barberinus n$northsouth 0.0111891
81 parupeneus_barberinus log(n\(distance_seagrass):n\)size_seagrass 0.0035053
91 parupeneus_barberinus log(n\(distance_seagrass):log(n\)size_mangroves) 0.0197465
26 lutjanus_fulviflamma n$size_seagrass 0.0487377
411 parupeneus_barberinoides log(n$distance_seagrass) 0.0002570
421 scolopsis_bilineata n\(size_seagrass:n\)depth10m 0.0083236
43 scolopsis_bilineata log(n\(distance_mangroves):n\)depth10m 0.0260803
44 scolopsis_bilineata log(n\(distance_seagrass):n\)size_seagrass:n$depth10m 0.0292520
45 scolopsis_ciliata n$depth10m 0.0001206
46 scolopsis_ciliata log(n\(distance_seagrass):n\)depth10m 0.0001718

log(size_seagrass), log(distance_seagrass), log(distance_mangroves) & log(size_mangroves)

glm_tab <- data.frame(species=c(), coefficient=c(), pvalue=c())

speciesrows <- c(1:3,25:28,36,39,40,42,47,52:54,58,66,84:86,88,91:100,102:104)
for (spnum in speciesrows){
  sp <- df.species_all[spnum,]
  print(sp$colname)
  n <- subset(df.sample_data, df.sample_data[c(sp$colname_pres)] > 0)
  if(nrow(n)<5){
    print("Less than 5 rows remaining in subset")
    next
  }
  if(length(unique(n$depth))==1 & length(unique(n$mpa))>1){
    formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$north
  }
  else if (length(unique(n$depth))>1 & length(unique(n$mpa))==1){
    formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$depth * n$north  
  }
  else if (length(unique(n$depth))==1 & length(unique(n$mpa))==1){
    formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$north  
  }
  else{
    formula <- n[,c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north  
  }
  print(paste("Formula",sp$colname,":",as.character(formula)))
  res <- NULL
  tryCatch(
  res <- glm(formula, family="poisson"),
    error=function(e){ print("GLM kon niet uitgevoerd worden.");print(geterrmessage())}
  )
  if(is.null(res)){
    next
  }
  
  coefs <- as.data.frame(coef(summary(res)))
  coefs <- subset(coefs,coefs$`Pr(>|z|)`<=0.05)
  coefs <- data.frame(species=rep(sp$colname,nrow(coefs)),coefficient=rownames(coefs),pvalue=coefs$`Pr(>|z|)`)
  coefs <- subset(coefs, coefs$coefficient != '(Intercept)')
  
  if(nrow(coefs)==0){
    next
  }
  glm_tab <- rbind(glm_tab, coefs)
  print(paste("AIC",sp$colname,": ",summary(res)$aic))
  par(mfrow=c(1,2)) 
  plot(fitted(res),residuals(res),xlab="Fitted values", ylab="Residuals", abline(h=0, lty=2))
  title(sp$colname)
  tryCatch( 
    lines(smooth.spline(fitted(res), residuals(res))), 
    error=function(e){}  )
  qqnorm(res$residuals)
  qqline(res$residuals) 
}
## [1] "abudefduf_lorenzi"
## [1] "Less than 5 rows remaining in subset"
## [1] "abudefduf_sexfasciatus"
## [1] "Formula abudefduf_sexfasciatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_sexfasciatus :  126.58813996457"

## [1] "abudefduf_vaigiensis"
## [1] "Formula abudefduf_vaigiensis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC abudefduf_vaigiensis :  761.404862459547"

## [1] "cheilinus_chlorourus"
## [1] "Formula cheilinus_chlorourus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "cheilinus_undulatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "cheilio_inermis"
## [1] "Formula cheilio_inermis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC cheilio_inermis :  137.853053579635"

## [1] "cheilodipterus_quinquelineatus"
## [1] "Formula cheilodipterus_quinquelineatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC cheilodipterus_quinquelineatus :  1484.15649033751"
## [1] "fistularia_commersonii"
## [1] "Formula fistularia_commersonii : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## Warning: glm.fit: algorithm did not converge
## [1] "halichoeres_argus"
## [1] "Formula halichoeres_argus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "halichoeres_hortulanus"
## [1] "Formula halichoeres_hortulanus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## Warning: glm.fit: algorithm did not converge

## [1] "halichoeres_scapularis"
## [1] "Formula halichoeres_scapularis : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lethrinus_harak"
## [1] "Less than 5 rows remaining in subset"
## [1] "lutjanus_decussatus"
## [1] "Formula lutjanus_decussatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_gibbus"
## [1] "Formula lutjanus_gibbus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_monostigma"
## [1] "Formula lutjanus_monostigma : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "mulloidichthys_flavolineatus"
## [1] "Formula mulloidichthys_flavolineatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC mulloidichthys_flavolineatus :  98.1906269028388"
## [1] "parupeneus_barberinus"
## [1] "Formula parupeneus_barberinus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## Warning: glm.fit: algorithm did not converge

## [1] "siganus_guttatus"
## [1] "Formula siganus_guttatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "siganus_virgatus"
## [1] "Formula siganus_virgatus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "sphyraena_barracuda"
## [1] "Less than 5 rows remaining in subset"
## [1] "stethojulis_trilineata"
## [1] "Formula stethojulis_trilineata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "plectorhinchus_flavomaculatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "plectorhinchus_lineatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_microdon"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_obsoletus"
## [1] "Formula lethrinus_obsoletus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$north"
## [1] "lutjanus_ehrenbergii"
## [1] "Formula lutjanus_ehrenbergii : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "lutjanus_fulviflamma"
## [1] "Formula lutjanus_fulviflamma : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$north"
## [1] "AIC lutjanus_fulviflamma :  37.6524153062094"

## [1] "lutjanus_fulvus"
## [1] "Formula lutjanus_fulvus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "parupeneus_barberinoides"
## [1] "Formula parupeneus_barberinoides : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC parupeneus_barberinoides :  166.731713851202"
## [1] "scolopsis_bilineata"
## [1] "Formula scolopsis_bilineata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## Warning: glm.fit: algorithm did not converge

## [1] "scolopsis_ciliata"
## [1] "Formula scolopsis_ciliata : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "AIC scolopsis_ciliata :  456.994991112409"

## [1] "scarus_psittacus"
## [1] "Formula scarus_psittacus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "epinephelus_merra"
## [1] "Formula epinephelus_merra : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$mpa * n$depth * n$north"
## [1] "siganus_spinus"
## [1] "Formula siganus_spinus : n[, c(sp$colname)] ~ log(n$distance_seagrass) * log(n$size_seagrass) * log(n$size_mangroves) * log(n$distance_mangroves) * n$depth * n$north"
knitr::kable(glm_tab, escape=TRUE)
species coefficient pvalue
1 abudefduf_sexfasciatus log(n$size_seagrass) 0.0493289
2 abudefduf_sexfasciatus log(n$distance_mangroves) 0.0389140
3 abudefduf_sexfasciatus n$northsouth 0.0452523
21 abudefduf_vaigiensis log(n$distance_seagrass) 0.0000294
31 abudefduf_vaigiensis log(n$size_seagrass) 0.0007564
4 abudefduf_vaigiensis log(n$size_mangroves) 0.0010255
5 abudefduf_vaigiensis log(n$distance_mangroves) 0.0009744
6 abudefduf_vaigiensis n$mpanon-mpa 0.0005113
7 abudefduf_vaigiensis n$depth10m 0.0000008
8 abudefduf_vaigiensis n$northsouth 0.0012526
9 abudefduf_vaigiensis log(n\(distance_seagrass):log(n\)size_seagrass) 0.0007965
10 abudefduf_vaigiensis log(n\(distance_seagrass):n\)depth10m 0.0000013
11 abudefduf_vaigiensis log(n\(size_seagrass):n\)depth10m 0.0016766
14 cheilio_inermis n$depth10m 0.0057399
22 cheilodipterus_quinquelineatus log(n$distance_seagrass) 0.0027203
32 cheilodipterus_quinquelineatus log(n$size_seagrass) 0.0000000
41 cheilodipterus_quinquelineatus log(n$size_mangroves) 0.0000000
51 cheilodipterus_quinquelineatus log(n$distance_mangroves) 0.0000000
61 cheilodipterus_quinquelineatus n$mpanon-mpa 0.0172170
71 cheilodipterus_quinquelineatus n$depth10m 0.0018268
81 cheilodipterus_quinquelineatus n$northsouth 0.0000000
91 cheilodipterus_quinquelineatus log(n\(distance_seagrass):log(n\)size_seagrass) 0.0000000
101 cheilodipterus_quinquelineatus log(n\(size_mangroves):n\)depth10m 0.0096215
111 cheilodipterus_quinquelineatus log(n\(distance_mangroves):n\)depth10m 0.0490026
12 cheilodipterus_quinquelineatus n\(mpanon-mpa:n\)depth10m 0.0050617
26 mulloidichthys_flavolineatus log(n$distance_seagrass) 0.0377532
27 mulloidichthys_flavolineatus log(n$distance_mangroves) 0.0131520
28 lutjanus_fulviflamma log(n$size_seagrass) 0.0487377
29 parupeneus_barberinoides log(n$distance_seagrass) 0.0001427
30 scolopsis_ciliata n$depth10m 0.0005535
311 scolopsis_ciliata log(n\(distance_seagrass):n\)depth10m 0.0084546

GLM family=Gaussian on abundance_pres

log(abundance)

glm_tab <- data.frame(species=c(), coefficient=c(), pvalue=c())

speciesrows <- c(1:3,25:28,36,39,40,42,47,52:54,58,66,84:86,88,91:100,102:104)
for (spnum in speciesrows){
  sp <- df.species_all[spnum,]
  print(sp$colname)
  n <- subset(df.sample_data, df.sample_data[c(sp$colname_pres)] > 0)
  if(nrow(n)<5){
    print("Less than 5 rows remaining in subset")
    next
  }
  if(length(unique(n$depth))==1 & length(unique(n$mpa))>1){
    formula <- log(n[,c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$north
  }
  else if (length(unique(n$depth))>1 & length(unique(n$mpa))==1){
    formula <- log(n[,c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$depth * n$north  
  }
  else if (length(unique(n$depth))==1 & length(unique(n$mpa))==1){
    formula <- log(n[,c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$north  
  }
  else{
    formula <- log(n[,c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north  
  }
  print(paste("Formula",sp$colname,":",as.character(formula)))
  res <- NULL
  tryCatch(
  res <- glm(formula, family="gaussian"),
    error=function(e){ print("GLM kon niet uitgevoerd worden.");print(geterrmessage())}
  )
  if(is.null(res)){
    next
  }
  
  coefs <- as.data.frame(coef(summary(res)))
  coefs <- subset(coefs,coefs$`Pr(>|z|)`<=0.05)
  coefs <- data.frame(species=rep(sp$colname,nrow(coefs)),coefficient=rownames(coefs),pvalue=coefs$`Pr(>|z|)`)
  coefs <- subset(coefs, coefs$coefficient != '(Intercept)')
  
  if(nrow(coefs)==0){
    next
  }
  glm_tab <- rbind(glm_tab, coefs)
  print(paste("AIC",sp$colname,": ",summary(res)$aic))
  par(mfrow=c(1,2)) 
  plot(fitted(res),residuals(res),xlab="Fitted values", ylab="Residuals", abline(h=0, lty=2))
  title(sp$colname)
  tryCatch( 
    lines(smooth.spline(fitted(res), residuals(res))), 
    error=function(e){}  )
  qqnorm(res$residuals)
  qqline(res$residuals) 
}
## [1] "abudefduf_lorenzi"
## [1] "Less than 5 rows remaining in subset"
## [1] "abudefduf_sexfasciatus"
## [1] "Formula abudefduf_sexfasciatus : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "abudefduf_vaigiensis"
## [1] "Formula abudefduf_vaigiensis : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "cheilinus_chlorourus"
## [1] "Formula cheilinus_chlorourus : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "cheilinus_undulatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "cheilio_inermis"
## [1] "Formula cheilio_inermis : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "cheilodipterus_quinquelineatus"
## [1] "Formula cheilodipterus_quinquelineatus : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "fistularia_commersonii"
## [1] "Formula fistularia_commersonii : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "halichoeres_argus"
## [1] "Formula halichoeres_argus : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "halichoeres_hortulanus"
## [1] "Formula halichoeres_hortulanus : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "halichoeres_scapularis"
## [1] "Formula halichoeres_scapularis : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "lethrinus_harak"
## [1] "Less than 5 rows remaining in subset"
## [1] "lutjanus_decussatus"
## [1] "Formula lutjanus_decussatus : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "lutjanus_gibbus"
## [1] "Formula lutjanus_gibbus : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "lutjanus_monostigma"
## [1] "Formula lutjanus_monostigma : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "mulloidichthys_flavolineatus"
## [1] "Formula mulloidichthys_flavolineatus : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "parupeneus_barberinus"
## [1] "Formula parupeneus_barberinus : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "siganus_guttatus"
## [1] "Formula siganus_guttatus : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "siganus_virgatus"
## [1] "Formula siganus_virgatus : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "sphyraena_barracuda"
## [1] "Less than 5 rows remaining in subset"
## [1] "stethojulis_trilineata"
## [1] "Formula stethojulis_trilineata : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "plectorhinchus_flavomaculatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "plectorhinchus_lineatus"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_microdon"
## [1] "Less than 5 rows remaining in subset"
## [1] "lethrinus_obsoletus"
## [1] "Formula lethrinus_obsoletus : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$north"
## [1] "lutjanus_ehrenbergii"
## [1] "Formula lutjanus_ehrenbergii : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "lutjanus_fulviflamma"
## [1] "Formula lutjanus_fulviflamma : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$north"
## [1] "lutjanus_fulvus"
## [1] "Formula lutjanus_fulvus : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "parupeneus_barberinoides"
## [1] "Formula parupeneus_barberinoides : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "scolopsis_bilineata"
## [1] "Formula scolopsis_bilineata : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "scolopsis_ciliata"
## [1] "Formula scolopsis_ciliata : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "scarus_psittacus"
## [1] "Formula scarus_psittacus : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "epinephelus_merra"
## [1] "Formula epinephelus_merra : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$mpa * n$depth * n$north"
## [1] "siganus_spinus"
## [1] "Formula siganus_spinus : log(n[, c(sp$colname)]) ~ n$distance_seagrass * n$size_seagrass * n$depth * n$north"
knitr::kable(glm_tab, escape=TRUE)